0

在 TabHost 中,我设置了一个 TabSpec,它包含一个带有几个按钮的标题区域,下面是一个 ListView。管理这个 TabSpec 的 Activity 被定义为“扩展 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

4 回答 4

1

如果您setContentView(R.layout.your_layout);获得btnSubmit. 但是,如果您遇到问题,那么最好将您的更改ListActivityActivity.

于 2012-06-06T04:53:22.687 回答
1

代替

btnRatingSubmit.setOnClickListener((OnClickListener) this);

试试这个:

btnRatingSubmit.setOnClickListener(new View.OnClickListener(){

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

        }
    }); 
于 2012-06-06T05:02:19.360 回答
0

我认为您的问题与((OnClickListener)this)有关。如果没有更多关于这个类的代码,我无法准确地判断出了什么问题。但是,您是否在拥有此按钮的 Activity 上实现 OnClickListener?否则,请尝试像这样进行投射((View.OnClickListener)this)。

于 2012-06-06T04:54:33.733 回答
0

您应该为活动实现 View.OnClickListener 以继续使用 (OnClickListener) this,或者简单地创建一个新的 View.OnClickListener 来替换“this”

于 2012-06-06T04:56:27.477 回答