0

そのため、アイテムの1つがクリックされると、他のアクティビティに移動するリストビューを作成する予定です。エクストラでインテントを使用したいのは明らかです。

しかし、私のコードでは、エクストラは参照していません。エクストラを正確な値で参照しようとしましたが、機能しましたが、オブジェクト/変数を参照するためにエクストラを配置すると機能しません。

これまでのところ、私のコードは次のようになります

public class bulan extends ListActivity {
    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.tagihan_list);

        Intent i = getIntent();
        final String no_pel = i.getStringExtra("no_pel");

        List<NameValuePair> pairs = new ArrayList<NameValuePair>();
        pairs.add(new BasicNameValuePair("nopel", no_pel));

        ArrayList<HashMap<String, String>> list = new ArrayList<HashMap<String, String>>();

        JSON json = new JSON();
        JSONObject jobj = json.getJSON("http://10.0.2.2/KP/tagihan.php", pairs);

        try {
            int length = jobj.getInt("panjang");

            for(int n = 1; n <= length; n++){

                String m = Integer.toString(n);
                JSONObject row = jobj.getJSONObject(m);

                String id_tagihan = "No. tagihan : " + row.getString("id");
                String bulan = row.getString("bulan");
                String tahun = row.getString("tahun");
                String tagihan = "Rp. " + row.getString("tagihan");
                String status = row.getString("status");

                HashMap<String, String> map = new HashMap<String, String>();

                map.put("id_tagihan", id_tagihan);
                map.put("bulan", bulan);
                map.put("tahun", tahun);
                map.put("tagihan", tagihan);
                map.put("status", status);

                list.add(map);
            }
        } catch (JSONException e) {
            e.printStackTrace();
        }

        ListAdapter adapter = new SimpleAdapter(this, list, R.layout.list, 
                new String[] {"id_tagihan","bulan","tahun","tagihan","status"}, new int[] { 
                R.id.id_tagihan, R.id.bulan, R.id.tahun, R.id.tagihan, R.id.status});

        setListAdapter(adapter);

        ListView lv = getListView();

        lv.setOnItemClickListener(new OnItemClickListener(){

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

                // TODO Auto-generated method stub
                String sid = ((TextView) view.findViewById(R.id.id_tagihan)).getText().toString();
                String snopel = no_pel;

                Intent i = new Intent(bulan.this, rincian.class);
                i.putExtra("id", sid);
                i.putExtra("no_pel", snopel);
                startActivity(i);

            }

        });
    }
}

先ほども説明しましたが、この部分です

Intent i = new Intent(bulan.this, rincian.class);
                    i.putExtra("id", sid);
                    i.putExtra("no_pel", snopel);
                    startActivity(i);

このように書くと、コードが機能するように変更されます

Intent i = new Intent(bulan.this, rincian.class);
                    i.putExtra("id", "00001");
                    i.putExtra("no_pel", "0620120001");
                    startActivity(i);
4

1 に答える 1

0

試す

Intent i = new Intent(bulan.this, rincian.class);
Bundle b=new Bundle();
b.putString("id",sid);
b.putString("no_pel",snopel);
i.putExtras(b);
startActivity(i);

rincian クラスで、次のように値を取得します。

b=getIntent().getExtras();
String fri_id=b.getString("id");
String nopel=b.getString("no_pel");
于 2012-06-25T10:31:26.147 に答える