【问题标题】:Getting selected items in a listview into sqlite database将列表视图中的选定项目放入 sqlite 数据库
【发布时间】:2016-06-15 13:55:43
【问题描述】:

我有学生详细信息的自定义清单,我想将所选项目的详细信息放入 SQlite 数据库。自定义列表视图包含学生“reg_no”、“firstname”、“Lastname”和“surname”。非常感谢任何快速帮助。这是我的代码。

MainActvity.java

public class StudentTake100Activity extends AppCompatActivity {
    private ListView lvStudentlist;
    private StudentListAdapter1 adapter;
    private List<StudentList> mStudentList;
    private CheckBox checkBox;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_student_take100);

        lvStudentlist= (ListView) findViewById(R.id.listview_studentlist);
        lvStudentlist.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);

        final DatabaseHandler db = new DatabaseHandler(this);

        mStudentList = new ArrayList<>();
        //Add sample data for list
        //We can get data from DB, webservice here
        mStudentList.add(new StudentList(1, "U11EE1001", "Bargo","S.","Mayafi"));
        mStudentList.add(new StudentList(2, "U11EE1002", "Barnsbas","Snake.","Maciji"));
        mStudentList.add(new StudentList(3, "U11EE1004", "Adamu","Tanko.","Sadau"));
        mStudentList.add(new StudentList(4, "U11EE1005", "Munzali","","Cire Tallafi"));


        //Init adapter
        adapter = new StudentListAdapter1(getApplicationContext(), mStudentList);
        lvStudentlist.setAdapter(adapter);
        checkBox = (CheckBox) findViewById(R.id.checkBox);

        lvStudentlist.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                //Do something
                SparseBooleanArray checked = lvStudentlist.getCheckedItemPositions();

                int size = checked.size(); // number of name-value pairs in the array
                for (int i = 0; i < size; i++) {
                    int key = checked.keyAt(i);
                    boolean value = checked.get(key);
                    if (value)
                        doSomethingWithSelectedIndex(key);
                    db.addAttendanceList(key);
                }


            }
        });

    }

}

【问题讨论】:

  • 不好的做法是修改后在下一个线程上问相同的问题,您可以在此处自行编辑问题。
  • 你的回答是错误的,我对这个问题投了反对票。我不知道我可以编辑问题,我不习惯在这里提问。

标签: java android sqlite listview


【解决方案1】:

将您的 onItemClickListener 更改为以下实现:

lvStudentlist.setOnItemClickListener(new AdapterView.OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

StudentList studentList = (StudentList)parent.getItemAtPosition(position);
        //Do something
        //SparseBooleanArray checked = //lvStudentlist.getCheckedItemPositions();

        //int size = checked.size(); // number of name-value pairs in the array
        //for (int i = 0; i < size; i++) {
            //int key = checked.keyAt(i);
            //boolean value = checked.get(key);
            //if (value)
               // doSomethingWithSelectedIndex(key);
            //db.addAttendanceList(key);
        //}

// get items from the studentList object

String studentName = studentList.getName();
int regNo = studentList.getRegNo(); // other fields as well


    }
});

根据需要使用这些字段,我希望您的 StudentList 类中有吸气剂。这应该这样做。

【讨论】:

猜你喜欢
  • 2021-01-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多