0

bundle を使用してインテントに 2 つの値を渡したいのですが、インテントをクリックしても値が渡されません。以下は、このソースコードです。

    public static final String ID_EXTRA = "com.example._ID";
    protected static final String ID_LISTID = "com.example._ID";
    String list = null;
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
            list = getIntent().getStringExtra(main.ID_EXTRA);
            listView = (ListView) findViewById(R.id.productList);
   {
   listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        public void onItemClick(AdapterView<?> parent, View view,
                int position, long id) {
            myid = (int) id;


        }

    });
}

==============================================================================
    Bundle bundle = new Bundle();
    bundle.putString(ID_EXTRA, String.valueOf(myid));
    bundle.putString(ID_LISTID, list);
    editProduct.putExtras(bundle);
    startActivity(editProduct);
4

2 に答える 2

2

Bundleに基づいて構築されてHashMapいるため、値を保存するために同じキーを使用すると、最後に入力した要素が挿入するアイテムに置き換えられます。別のキーを使用します。

例えば:

 public static final String ID_EXTRA = "com.example._ID2";
 protected static final String ID_LISTID = "com.example._ID1";
于 2012-11-29T13:09:14.673 に答える
0

追加のデータを提供しないと、誰もこの質問に答えることができません。

  • ID_EXTRA の値は何ですか。
  • ID_LISTID の値は何ですか。

それらは同じであってはなりません!両方に同じ値を指定しました。com.example._ID1これを " " や " "のように変更しcom.example._ID2ます。

  • myid は、これが整数であると疑われます。putInt リスト経由で追加してください
  • リストとは何ですか?あなたはそれがひもだと言いますが、私はそれを本当に信じていません。そうである場合は、変数の名前をよりわかりやすいものに変更してください。あなたのためだけでなく、あなたのコードを使用する人のためにも。
于 2012-11-29T13:00:12.537 に答える