2016-09-29 15 views
1

学生ロールはListViewにありません。今度は選択してロール番号をクリックして、その学生の名前を表示します。ロールナンバー= 1 、私はこの上でクリックしたとき、それは私がのような名前表示しなければならない、と私はロール上のNO 2をクリックしない場合、それは私がBのような名前を示すために必要があり、そのために....androidのリストビューから特定のユーザーを選択する方法

ArrayList<String> student = new ArrayList<String>(); 
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_selectable_list_item, student); 
ListView list = new(ListView)findViewById(R.id.ll); 

public void dd(View view){ 
    if (res.getCount() == 0) { 
     // show message 
     showMessage("Error", "Nothing found"); 
     return; 
    } 

    while (res.moveToNext()) { 
     String roll = "Roll No1:" + res.getString(0); 
     String rolll = "Roll NO2:" + res.getString(1); 
     String rollk = "Roll NO3:" + res.getString(2); 
     student.add(roll); 
     student.add(rolll); 
     student.add(rollk); 
     list.setAdapter(adapter); 
    } 
} 


list.setOnItemClickListener(new AdapterView.OnItemClickListener() { 

    @Override 
    public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) { 
     Toast.makeText(getBaseContext(), student.get(i), Toast.LENGTH_SHORT).show(); 
    } 

}); 

それが正常に動作します私はswitch文を使っていますが、case 0、case 1、case 2などのような大量の大文字小文字になります。 またif条件も使用しましたが、if私はthisを扱う特別な方法を必要とします。そして、ロール番号2をクリックして1つの学生名を表示し、rをクリックする別の学生の名前を表示するためにoll no3。

+0

どのように見えるのですか? – Ben

+0

resは正常に動作します。データベースからのデータ。 –

+0

あなたのonClickListenerが正しいかどうかは「うまくいきません」。したがって、配列リストの生徒をどのように移植するかが問題です。あなたがresを見せてくれれば、助けてくれる人にとっては役に立ちます。 – Ben

答えて

0

あなたはカーソルと混同していると思います。あなたのデータベースの設定を見ることなく、言うことは難しいです。あなたが現在持っているものを見てみましょう

//I would add res.moveToStart() here just to be safe. 
while (res.moveToNext()) { //This should probably be a do while otherwise you'll skip the first entry 

     //This is where things seem to be not right these next three statements get columns 1, 2 and 3 of your database. 
     //So this would mean your database structure is 
     //|roll|roll|roll| 
     //is this really correct? 
     //I would think for performance you would have an index and something like 
     //|id|roll name|roll email?| 
     //with that setup you would simply do 
     String rollName = "Roll NO2:" + res.getString(1); 
     student.add(rollName); 
} 

//I would also instantiate adapter here now that your list is populate or call notifyDataSetChanged() on it 
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_selectable_list_item, student); 

//This should also be outside of your loop you don't need to call this every time. 
list.setAdapter(adapter); 
関連する問題