按钮setOnclickListener无法使用可扩展列表视图

时间:2015-06-30 13:18:51

标签: android

我有两个xml用于可扩展列表视图和listitem。

1) list.xml
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/gradient_bg"
android:orientation="vertical" >

<ExpandableListView
    android:id="@+id/lvExp"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

   </LinearLayout>

2)list_group.xml
  <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="match_parent">

  <TextView
    android:id="@+id/lbl"
    android:layout_width="wrap_content"
    />

<Button
    android:id="@+id/btn_login"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
   android:text="Login"
    android:focusable="false" />

  </RelativeLayout>

现在我已经创建了以下类,其中我已经为可扩展列表视图编写了所有代码,并且它工作正常但是当我编写btn_login.setOnCliclListener然后它给出强制关闭错误时按钮也是可见的。

Allitem.java

Button btn_login;


    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.list);

     btn_login = (Button) findViewById(R.id.btn_login);

        btn_login.setOnClickListener(new OnClickListener() {

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

        }
    });
     ....
     ....
   }

所有工作都很完美,但是当我为该按钮编写setOnClickListener但我得到以下错误

Caused by: java.lang.NullPointerException
    at com.example.test.list.onCreate(list.java:45)

所以我怎么能解决这个问题呢?

2 个答案:

答案 0 :(得分:1)

You need to handle onClickListener of your list item button in the Adapter of the listview.

答案 1 :(得分:1)

Edit your button variable to btn_print instead Btn_login .. Btn_login is your xml button id..

Button btn_print;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.list);

 btn_print = (Button) findViewById(R.id.btn_login);

    btn_print.setOnClickListener(new OnClickListener() {

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

    }
});