使用ListActivity的TabSpec ...如何为Button设置OnClickListener?

时间:2012-06-06 04:45:49

标签: android android-layout casting android-listview

在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>

4 个答案:

答案 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”