3

私が持っている発信者の活動について:

 protected void onListItemClick(ListView l, View v, int position, long id) {


          Intent myIntent = new Intent(MainActivity.this, sondaggioActivity.class);
          myIntent.putExtra("categoriaId", String.valueOf(id));
          MainActivity.this.startActivity(myIntent);
        // Toast.makeText(this, String.valueOf(id), Toast.LENGTH_LONG).show();
        }   

トーストは、リストでクリックされたアイテムのIDの正しい値を返します。私が持っている受信者の活動について:

public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.maindomanda);

        int category = getIntent().getExtras().getInt("categoriaId"); 
        TextView text = (TextView) findViewById(R.id.domanda);
        text.setText(String.valueOf(category));
    }

非常に簡単です...テキストフィールドは常に0を返します...何が間違っていますか? String.ValueOf() はどういうわけか非推奨ですか? または別のものを使用する方が良いです...そして別の副次的な質問...私long idは自分が何をしているのか知っているように渡します、それはかなり間違っています...それはいわゆる「_ID」フィールドですか? これらの値を dbtable から取得していますが、それはテーブル ID ですか?

4

3 に答える 3

2

コードを次のように変更します。

String strcategory = getIntent().getExtras().getString("categoriaId"); 

StringonListItemClick から sondaggioActivity アクティビティに渡し、として受信しようとしているためInt

ノート :

2番目の重要なポイントはidlongそれを解析しようとしているのですが、Intこれも有効ではありません。この投稿を参照してください: How can I convert a long to int in Java?

解決策は、IDを送信するだけonListItemClickです

 myIntent.putExtra("categoriaId",id);

sondaggioActivityActivityのように受け取ります:

long category = getIntent().getExtras().getLong("categoriaId");
于 2012-12-20T15:32:50.193 に答える
1

int を取得しています。getInt("categoriaId")文字列putExtra("categoriaId", String.valueOf(id)); String.valueOf();を渡しました。int の STring 表現を返します。

于 2012-12-20T15:33:35.040 に答える
0

myIntent.putExtra( "categoriaId"、id);としてcategoriaIdを渡します。

于 2012-12-20T15:38:40.367 に答える