0

一連の変数を別のアクティビティに渡そうとしていますが、受信アクティビティでは最初の要素にしかアクセスできませんでした。

私のlistView1には、2つのTextViewと1つのImageViewの3つの要素が含まれています。

public void onItemClick(AdapterView<?> parent, View view, int position,
                long id) {
            Intent intent = new Intent(parent.getContext(),
                    DisplayListEntry.class);

            intent.putExtra("TOPIC",    listView1.getAdapter().getItem(position).toString());

            startActivityForResult(intent,   0);    

受信アクティビティ:

    Intent intent = getIntent(); 

    String s1 =  intent.getStringExtra("TOPIC"); 

そして、私はインテントを介してそれらにアクセスしたい...誰かがとても親切にして、それがどのように行われたか教えてくれませんか?:/

前もって感謝します!

4

4 に答える 4

0

アイテムのさまざまなキーと位置を使用してPutExtraをいくつでも追加でき、別のクラスではキーを使用して取得できます。

于 2013-03-06T12:03:08.930 に答える
0

まず、次のアクティビティでこれを修正する必要があります

 Bundle b = getIntent().getExtras();
    if( b != null ){
        String s1 =  intent.getStringExtra("TOPIC"); 
    }
于 2013-03-06T12:03:32.330 に答える
0

インテントインテント=getIntent();

String s1 =  intent.getStringExtra("TOPIC"); 

ここでは、s1を文字列として宣言します。

u pass arraylistが存在するため、機能しません。

arraylist変数を宣言し、それを実装してみてください。

于 2013-03-06T12:05:25.897 に答える
0

わかりました。3つのビューがあり、これらのデータを別のアクティビティに使用したいと考えています。

最初の問題は、onItemClick内で別のアクティビティを開始していて、この時点で、アイテムの位置を使用して現在の値を取得していることです。それは問題ありませんが、クリックされている特定のビューの値のみを取得しています。listView1.getAdapter()。getItem(position).toString();

あなたが本当に3つの値を渡したいのなら、私の提案は次のとおりです。

  • ビューごとにクラスにフィールドを作成します

例:Textview t1、t2; ImageView i1;

そして、onClickイベントを使用して、次のようなインテント内に配置します。

onItemClick(AdapterView<?> parent, View view, int position, long id) {
        Intent intent = new Intent(parent.getContext(), DisplayListEntry.class);

        intent.putExtra("key1",t1.getText());
        intent.putExtra("key2",t2.getText());
        intent.putExtra("key3",i2.get***());

        startActivityForResult(intent,   0);   

別のアクティビティでは、これらの値にアクセスできます。

 Intent intent = getIntent(); 
 String s1 =  intent.getStringExtra("key1"); 
 String s2 =  intent.getStringExtra("key2"); 
 ***     =  intent.get****("key3");       

渡すデータ型の***を変更する必要があります。

于 2013-03-06T12:49:13.207 に答える