-2

ListViewのカスタムアダプターであるクラスに次のメソッドがあります。

convertView.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
            String test = availableDevices.get(position).getAddress().toString();   
        }
    });

文字列testには、デバイスの MAC アドレスが含まれています。私の質問は次のとおりです。この変数を新しいアクティビティに渡すにはどうすればよいですか。次のような通常の方法ではできないようです。

Intent intent = new Intent();
            intent.setClass(Activity1.this, Activity2.class);
            startActivityForResult(**,**); 
4

7 に答える 7

1

次のようにインテントに文字列を渡すことでそれを行うことができます。

intent.putExtra("Test", test);

最初のパラメーターはキーで、2 番目のパラメーターは値です。
次に、他のアクティビティで次のことを行います。

Intent launchingIntent = getIntent();  
launchingIntent.getStringExtra("Test");
于 2012-06-28T12:44:39.263 に答える
1

public static String テストを設定します。その後、アプリケーションを保持してアクセスできます。

ありがとう。

于 2012-06-28T12:46:40.610 に答える
1

新しい Activity2 に関するテストに合格:

Intent intent = new Intent();
intent.setClass(Activity1.this, Activity2.class);
intent.putExtra("Test", test);
startActivityForResult(intent,0); // 0 is as requestCode here 
于 2012-06-28T12:45:57.530 に答える
1

Activity を拡張するクラス以外のクラスには Context オブジェクトを使用する必要があります。

Intent intent = new Intent();
            intent.setClass(contextObj, Activity2.class);
           intent.putExtra("macadd", //value goes here);
           contextObj.startActivityForResult(intent,requestcode goes here); 
于 2012-06-28T12:46:20.180 に答える
0

この方法で解決

Intent intent = new Intent(c, Connection.class);
            intent.putExtra("mac", test);
            c.startActivity(intent);

みんなありがとう!

于 2012-06-28T12:54:13.167 に答える
0

それに YourCurrentActivity.this を渡すようにアダプターを設定している間

 Adapter adapter=new Adapter(YourCurrentActivity.this); 

Adpatクラスで、以下に示すように変更を加えている間

 public Activity activity;
 public Adapter(Activity act) {
    activity = act;    
 }

この後、メソッドで以下に示すようにコードを使用します

  Intent intent = new Intent();
  intent.setClass(activity.this, Activity2.class);
  intent.putExtra("Test", test);
  startActivityForResult(intent,0);
于 2012-06-28T13:00:29.000 に答える