1

名前付きのリスト ビューを作成したい。それぞれの名前をクリックすると、別のグレードが表示されます。すべての名前とグレードはデータベースによって取得され、意図を持ったアクティビティを介して渡される json 形式に保存されます。

public class StudentList extends ListActivity {
public void onCreate(Bundle icicle) {
super.onCreate(icicle);

/**get the intent*/
Intent studentIntent = getIntent();

/**retrieve the string extra passed*/
ArrayList<String> nameRecd = studentIntent.getStringArrayListExtra("name");
ArrayList<String> gradeRecd = studentIntent.getStringArrayListExtra("grade");
try {
    JSONArray jsonData = new JSONArray(getIntent().getStringExtra("data"));
    Log.i("json review:", "Check out my JSON, looks like his JMother");

    ArrayAdapter<String> adapter = new ArrayAdapter<String>
    (this, android.R.layout.simple_list_item_1, nameRecd);
    setListAdapter(adapter);


} catch (JSONException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

}

@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
String item = (String) getListAdapter().getItem(position);
int pos = position;

Toast.makeText(this, item + " selected" + "Grade:"  , Toast.LENGTH_LONG).show();
}

}

したがって、選択したすべての名前を乾杯したり、同じポジションの学年を処理したりできるようにして、特定の学生のある種のプロファイルを作成し、学生の名前をクリックしてアクセスできるようにしたいと考えています!

4

1 に答える 1

0

onListItemClick内でsameintentを開始する問題は解決しました...

@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
String item = (String) getListAdapter().getItem(position);

/**get the intent*/
Intent studentIntent = getIntent();

/**retrieve the data extra passed*/
ArrayList<String> names = new ArrayList<String>();
ArrayList<String> grades = new ArrayList<String>();
JSONObject json_data = new JSONObject();
try {
    JSONArray jARR = new JSONArray(getIntent().getStringExtra("data"));
    Log.i("json review:", "Check out my JSON, looks like his JMother");
    for(int i=0;i<jARR.length();i++){
        json_data = jARR.getJSONObject(i);
        names.add((json_data.getString("name"))) ;
        grades.add((json_data.getString("grade"))) ;

    }



} catch (JSONException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}
于 2013-03-20T08:19:50.600 に答える