无法在listView中创建Clickable按钮

时间:2014-11-14 09:29:45

标签: android

好吧,我已经尝试了所有的方法,但没有任何作用,

我需要做的就是点击button并获得相同的AlertDialog

但是根据我写的代码,它很简单,什么都不做,我没有错误,所以我可以纠正它。

这是我的代码:

 @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            //
       View row = getLayoutInflater().inflate(R.layout.list_subjects_forecast, parent, false);
          Button mOptionsButton = (Button) row.findViewById(R.id.button);
            mOptionsButton.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    mOptionsButton.setBackgroundColor(R.color.gray5);
                    String[] builderArray = {"item0","item1"};
                    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
                    builder.setItems(builderArray, new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            // TO DO
                        }
                    }).create();
                    builder.show();
                }
            });

<android.support.v7.widget.CardView
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    app:cardCornerRadius="0dp" >
    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:layout_weight="0.18"
        android:id="@+id/firstrelativelayout" >
        <ImageView
            android:layout_width="50dp"
            android:layout_height="50dp"
            android:id="@+id/imageView"
            android:src="@drawable/defavatar"
            android:background="@color/gray4" />
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/autor"
            android:id="@+id/list_autors_textview"
            android:textSize="14sp" />
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="#1"
            android:id="@+id/textView8" />
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="New"
            android:id="@+id/button" />
    </RelativeLayout>
</android.support.v7.widget.CardView >

2 个答案:

答案 0 :(得分:0)

尝试使用以下部分代码:

<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="New"
android:clickable="true"
android:focusable="true"
android:id="@+id/button" />

答案 1 :(得分:0)

我找到了问题的来源,

我必须检查convertView是否为null,

我完全忘记了这一点。

                if (convertView == null) {
                convertView = LayoutInflater.from(getContext()).inflate(R.layout.list_subjects_forecast, parent, false);
            }