-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);

其中第一个参数是键,第二个是值。
然后在其他活动中执行:

Intent launchingIntent = getIntent();  
launchingIntent.getStringExtra("Test");
于 2012-06-28T12:44:39.263 回答
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

您必须将 Context 对象用于扩展 Activity 之外的类。

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 回答
1

设置公共静态字符串测试。然后你就可以访问它持有应用程序。

谢谢。

于 2012-06-28T12:46:40.610 回答
0

以这种方式解决了

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

多谢你们!

于 2012-06-28T12:54:13.167 回答
0

像这样使用 SharedPreferences

 String username = CarName.getText().toString();
         SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
         SharedPreferences.Editor editor = settings.edit();
         editor.putString("Shareusername",username);
         editor.commit();

在接收端使用这样的东西

//TextView textView = (TextView)findViewById(R.id.lblnames); SharedPreferences 设置 = PreferenceManager.getDefaultSharedPreferences(this); String shareUsername = settings .getString("Shareusername","null"); Vehicle.setText(shareUsername);

于 2012-06-28T12:55:51.937 回答
0

同时设置 adpater 像传入 YourCurrentActivity.this

 Adapter adapter=new Adapter(YourCurrentActivity.this); 

而在您的Adpater类中进行了如下所示的更改

 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 回答