2012-03-29 11 views
0

私は2つのアクティビティを持っています。私はリストビューからランダムにデータを選択します

最初のアクティビティは、サーバーからのJSONデータをサーバーからListViewにパーズするアクティビティであり、2番目のアクティビティは、ListViewに選択した値のデータを表示するアクティビティです。

/** 
    * Updating parsed JSON data into ListView 
    * */ 
    ListAdapter adapter = new SimpleAdapter(this, userList, 
      R.layout.listitemviewall, 
      new String[] { "namaresto", "alamatresto"}, 
      new int[] {R.id.name, R.id.address}); 

    setListAdapter(adapter); 

    /** 
    * select resto 
    */ 

final ListView lv = getListView(); 
    lv.setTextFilterEnabled(true); 
    lv.setOnItemClickListener(new OnItemClickListener() { 
     public void onItemClick(AdapterView<?> parent, View view, int position, long id) {    

      /** 
      * move to the next activity 
      * */ 

      String namanya = ((TextView) findViewById(R.id.name)).getText().toString(); 
      String alamatnya = ((TextView) findViewById(R.id.address)).getText().toString(); 

      //Starting a new Intent 
      Intent nextScreen = new Intent(getApplicationContext(), InfoTab.class); 

      //Sending data to another Activity 
      nextScreen.putExtra("name", namanya); 
      nextScreen.putExtra("address", alamatnya); 

      // starting new activity 
      startActivity(nextScreen); 


     } 
    }); 

そして、ここが第二の活動です:

ここでは私の第一の活動のonClick方法だ

TextView txtname = (TextView) findViewById(R.id.textTEST1); 
TextView txtaddress = (TextView) findViewById(R.id.TextTEST2); 



    //displaying data from previous activity 
    Intent i = getIntent(); 
    // Receiving the Data 
    String name = i.getStringExtra("name"); 
    String address = i.getStringExtra("address"); 

    // Displaying Received data 
    txtname.setText(name); 
    txtaddress.setText(address); 

結果は、第二の活動は、常に最初のレコードを表示します!場合でも、私はListViewの2番目または他のレコードをクリックした。

ListViewで選択されている正しいレコードを表示するにはどうすればよいですか?

答えて

0

これらの行変更してみてください:あなたはonItemClickで正しいデータを摘みされていません

+0

よろしくお願い致します。 私にとってはうってつけです! –

+0

幸せそう:) – Th0rndike

0

...それはあなたのために働くなら、私に教え

String namanya = ((TextView) view.findViewById(R.id.name)).getText().toString(); 
     String alamatnya = ((TextView) view.findViewById(R.id.address)).getText().toString(); 

:に

String namanya = ((TextView) findViewById(R.id.name)).getText().toString(); 
     String alamatnya = ((TextView) findViewById(R.id.address)).getText().toString(); 

を。 parent.getItemAtPosition(position)を実行することによって、その行を表すリストからオブジェクトを取得できます。 onItemClick内にあります。これにより、アダプタに提供したリスト内のオブジェクトが、その行に対応するオブジェクトになります。

関連する問題