使用setOnCheckedChangeListener()在使用Checkboxes实现ListView时进行攻击

时间:2013-09-10 18:13:32

标签: android listview checkbox android-listview

我正在尝试使用复选框实现listview。我几乎完成了它,我有SQLite数据库列表视图中列出的所有值。但是,当我点击任何复选框时,该项目未被选中,而是另一项活动开始。我甚至评论了开始另一项活动的代码。但是,现在应用程序意外停止了。我得到的logcat如下 -

09-10 12:56:12.707: E/AndroidRuntime(15502): FATAL EXCEPTION: main
09-10 12:56:12.707: E/AndroidRuntime(15502): java.lang.NullPointerException
09-10 12:56:12.707: E/AndroidRuntime(15502):    at     com.example.fromstart.addpersons2photo.onListItemClick(addpersons2photo.java:73)

代码如下 -

public class addpersons2photo extends ListActivity { TextView content;
final adapter info = new adapter(this);
Button add;
@Override
protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.personstoadd);
   int rowcount = info.getrowcount();
    content = (TextView)findViewById(R.id.output);
    String[] values = new String[11];
    for (int i=0;i<=10;i++)
    {
    values[i] = info.plist(i+1); //here I am getting all the values from the database and storing in an array.
    Toast.makeText(getApplicationContext(), values[i], Toast.LENGTH_LONG).show();
    }

   // Define a new Adapter
   // First parameter - Context
   // Second parameter - Layout for the row
   // Third - the Array of data

    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
            android.R.layout.simple_list_item_multiple_choice, values);
    ListView listView = (ListView) findViewById(android.R.id.list);
    listView.setItemsCanFocus(false);
    listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);


   // Assign adapter to List
    setListAdapter(adapter); 

}


@Override
protected void onListItemClick(ListView l, View v, int position, long id) {

    super.onListItemClick(l, v, position, id); //this is line no. 73 where I am getting exception

      // ListView Clicked item index
       int itemPosition     = position;

      // ListView Clicked item value
       String  itemValue    = (String) l.getItemAtPosition(position);

       content.setText("Click : \n  Position :"+itemPosition+"  \n  ListItem : " +itemValue);
      act(itemValue);

}


private void act(String itemValue) {
    // TODO Auto-generated method stub
            String value = itemValue;
            Toast.makeText(getApplicationContext(), value, Toast.LENGTH_LONG).show();

}
}

我的目标是,当我检查列表中的项目时,应该选中复选框,不应该启动任何活动,并且应该能够一次选择多个项目并在Toast中一次显示所有项目消息。

我知道,我应该有一些像按钮这样的项目,这样当我点击它时,点击它后会出现Toast消息。对不起,我会在这个问题解决后再这样做。

我已经尝试了以下教程,以了解这一点。

Android ListView With CheckBoxes

Change CheckBox state on List item click?

How to save state of CheckBox while scrolling in ListView?

在EmployeeAdapter.java类中,将在以下教程中进行描述

http://androidfreakers.blogspot.in/2011/10/custom-listview-with-checkbox.html

我使用setOnCheckedChangeListener()找到了一些代码。我认为这可能适用于我的代码。但我无法理解,如何在我的代码中使用它。如果您有任何理解,请告诉我应该如何更改我的代码。

包括这些,我已经尝试了很多其他教程,但我没有得到适当的解决方案来解决我的问题。请帮助我提出您的建议,如果可能的话,请提供一些示例代码或教程。

提前致谢。

0 个答案:

没有答案