在TabHost中,我正在设置一个TabSpec,它包含一个带有几个按钮的标题区域,下面是一个ListView。管理此TabSpec的活动定义为“扩展ListActivity”。 但是,现在我遇到了无法定义OnClickListener来检查按下的提交按钮的问题。我该如何解决?
尝试按
投射按钮btnRatingSubmit.setOnClickListener((OnClickListener) this);
引发ClassCastException ...
以下是布局的基本摘录:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<RatingBar
android:id="@+id/ratingBar"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<EditText
android:id="@+id/edComment"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textMultiLine" >
</EditText>
<Button
android:id="@+id/btnSubmit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/btnSubmit" />
<ListView
android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
</LinearLayout>
答案 0 :(得分:1)
如果你setContentView(R.layout.your_layout);
并获得btnSubmit
的实例,那应该不是问题。但是,如果您面临问题,那么只需将ListActivity
更改为Activity
。
答案 1 :(得分:1)
而不是
btnRatingSubmit.setOnClickListener((OnClickListener) this);
试试这个:
btnRatingSubmit.setOnClickListener(new View.OnClickListener(){
public void onClick(View v) {
// TODO Auto-generated method stub
}
});
答案 2 :(得分:0)
我认为你的问题是((OnClickListener)这个)。如果没有更多关于这个类的代码,我无法正确地说出错误。但是,您是否在包含此按钮的Activity上实现OnClickListener?否则,尝试像这样投射((View.OnClickListener))。
答案 3 :(得分:0)
您应该为活动实现View.OnClickListener以继续使用(OnClickListener),或者只是创建一个新的View.OnClickListener来替换“this”