2012-06-28 3 views
-2

У меня есть следующий метод в классе, который является настраиваемым адаптером для ListView.Передача информации в новую активность из класса, расширяющего BaseAdapter

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(**,**); 
+0

Посмотрите на http: // stackoverflow.com/questions/11243976/get-data-from-first-activity-to-4th-activity-in-android/11244047 # 11244047 –

ответ

0

решаемые это этот путь

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

Спасибо, ребята!

1

Вы можете сделать это, передавая строку в умыслом, как это:

intent.putExtra("Test", test); 

Если первый параметр является ключевым , а второе значение.
Тогда в другой деятельности сделать: тест

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

пролетит как к новым деятельности2:

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

Вы должны использовать объект контекста для других, чем те, которые проходят активность классов.

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

Я получил только эти сообщения об ошибках: метод setClass (Context, Class ) в типе Intent не применим для аргументов (DeviceAdapter, Class ) и метод startActivityForResult (DeviceAdapter, класс ) не определен для типа Context –

+0

отредактировал мой ответ. вы можете попробовать –

1

set public static String test. то вы можете получить доступ к этому приложению.

Спасибо.

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

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); 
Смежные вопросы