将信息传递给扩展BaseAdapter的类中的新Activity

时间:2012-06-28 12:42:19

标签: android

我在类中有以下方法,它是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(**,**); 

7 个答案:

答案 0 :(得分:1)

您可以通过在意图中传递字符串来完成此操作:

intent.putExtra("Test", test);

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

Intent launchingIntent = getIntent();  
launchingIntent.getStringExtra("Test");

答案 1 :(得分:1)

将测试传递给新的Activity2:

Intent intent = new Intent();
intent.setClass(Activity1.this, Activity2.class);
intent.putExtra("Test", test);
startActivityForResult(intent,0); // 0 is as requestCode here 

答案 2 :(得分:1)

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

Intent intent = new Intent();
            intent.setClass(contextObj, Activity2.class);
           intent.putExtra("macadd", //value goes here);
           contextObj.startActivityForResult(intent,requestcode goes here); 

答案 3 :(得分:1)

设置public static String test。然后你就可以访问它了应用程序。

感谢。

答案 4 :(得分:0)

以这种方式解决

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

谢谢你们!

答案 5 :(得分: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 settings = PreferenceManager.getDefaultSharedPreferences(this);         String shareUsername = settings .getString(“Shareusername”,“null”);         Vehicle.setText(shareUsername);

答案 6 :(得分: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);