setOnClickListener вызывает принудительное закрытие в Android

Я пытаюсь создать onClickListener для кнопки. Все отображается нормально, прежде чем я создаю прослушиватель событий, но принудительно закрывается, когда я добавляю его.

Вот код: пакет com.austin.mobile;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

public class TxtLingoActivity extends Activity {
/** Called when the activity is first created. */
Button convert;
EditText inputText, outputText;
String myCopy;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    this.setContentView(R.layout.main);

    convert = (Button) findViewById(R.id.inputTextBox);
    convert.setOnClickListener(new View.OnClickListener() {

        public void onClick(View v) {
            // TODO Auto-generated method stub

        }
    });

}
}

Вот xml:

<TextView
    android:id="@+id/textView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Input"
    android:textAppearance="?android:attr/textAppearanceMedium" />

<EditText
    android:id="@+id/inputTextBox"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" >

    <requestFocus />
</EditText>


<Button
    android:id="@+id/convert"
    android:layout_gravity="right"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:clickable="true"
    android:text="Convert" />

<TextView
    android:id="@+id/textView2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Output"
    android:textAppearance="?android:attr/textAppearanceMedium" />

<EditText
    android:id="@+id/outputTextBox"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" />

</LinearLayout>

Log Cat показывает эту ошибку: 03-19 18:05:21.726: E/dalvikvm(662): невозможно открыть файл трассировки стека '/data/anr/traces.txt': разрешение отклонено

Какие-либо предложения?


person Austin Green    schedule 19.03.2012    source источник
comment
Вам не нужно android:clickable="true"на кнопке. Если вы используете eclipse, попробуйте проект › clean. Также, если вы используете эмулятор, сотрите данные и запустите снова.   -  person Blundell    schedule 19.03.2012


Ответы (2)


Похоже, вы имеете в виду неправильный идентификатор при «нахождении» Button:

Попробуйте изменить это:

convert = (Button) findViewById(R.id.inputTextBox);

к этому:

convert = (Button) findViewById(R.id.convert);

Надеюсь это поможет...

person px3j    schedule 19.03.2012
comment
Спасибо, я этого не заметил. - person Austin Green; 19.03.2012

его ClassCastException в этой строке convert = (Button) findViewById(R.id.inputTextBox);

Потому что R.id.inputTextBox это EditText и вы используете как Button. Измените его в R.id.convert

person Samir Mangroliya    schedule 19.03.2012