#android #eclipse #tabactivity
#Android #затмение #tabactivity
Вопрос:
Я хочу установить OnClickListener
на свой button3
.
Это действие на второй вкладке TabHost
.
import android.content.DialogInterface.OnClickListener;
public class tab_act extends Activity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.second_tab);
findViewById(R.id.button1).setOnClickListener(new OnClickListener() {
public void onClick(View v) {
}
});
}
}
XML:
<Button
android:id="@ id/button3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:drawableLeft="@drawable/icon_search"
android:drawablePadding="15dip"
android:text="Найти совпадения" />
И я получаю ошибку:
Метод setOnClickListener(Просмотр.OnClickListener) в представлении типа не применяется для аргументов (новый диалоговый интерфейс.OnClickListener(){})
в этой строке:
findViewById(R.id.button1).setOnClickListener(new OnClickListener() {
Ответ №1:
Вы импортировали неправильно OnClickListener
— это должно быть
import android.view.View.OnClickListener;
вместо import android.content.DialogInterface.OnClickListener;
. Также вы настраиваете OnClickListener
кнопку с идентификатором button1
, в то время как предоставленный вами xml объявляет кнопку с идентификатором button3
редактировать Лучше неявно указать это следующим образом:
findViewById(R.id.button3).setOnClickListener(new View.OnClickListener() {
...
});
чтобы предотвратить возникновение таких ошибок.
Ответ №2:
Вы делаете findViewById(R.id.button1)
, и вы должны делать findViewById(R.id.button3)
Ответ №3:
Еще одна вещь: если вы импортировали более одного метода из 2 разных мест (например, вы импортировали и использовали в одном и том же действии оба android.content.DialogInterface.OnClickListener
и android.view.View.OnClickListener
), вы не можете использовать ярлыки для обоих случаев при вызове OnClickListener
, и вам придется вызывать что-то конкретное, например, так:
findViewById(R.id.button1).setOnClickListener(new android.view.View.OnClickListener() {
public void onClick(View v) {
}
});