2016-06-15 15 views
-1

私は学生の詳細のカスタムチェックリストを持っており、選択した項目の詳細をSQliteデータベースに取得したいと考えています。カスタムListviewには、学生 "reg_no"、 "firstname"、 "lastname"および "surname"が含まれています。迅速なヘルプは非常に高く評価されます。ここに私のコードです。リストビュー内の選択された項目をsqliteデータベースに取得する

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); 
       } 


      } 
     }); 

    } 

} 
+0

悪い習慣は、それを変更した後に次のスレッドで同じ質問をすることは、ここで質問を編集することができます。 –

+0

あなたの答えは間違っています。私は質問を編集できることを知らなかった、私はここで質問するのに慣れていない。 –

答えて

0

変更するには、以下のインプリメンテーションにご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 


    } 
}); 

仕事あなたが望むように、私はuがあなたのStudentListクラスのゲッターと思っています。これはそれを行う必要があります。

+0

ありがとうございます。チェックアウトしてくださいこの質問はより正確ですhttp://stackoverflow.com/questions/37837568/getting-selected-items-in-a-listview-into-sqlite-database。 –

+0

ありがとうございますが、私はチェックされた詳細だけを取得したいです。チェックアウトしてください。この質問はより正確で、私のwork @ vibhor_shri.http://stackoverflow.com/questions/37841727/getting-selected-items-details-in-a-listview-into-sqlite-databaseの写真があります。 –

関連する問題