我正在尝试将对象列表从一个活动传递到另一个活动。但是无法发送它。
这是我的代码。
setPrefBtn.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Intent homePageIntent = new Intent(SetPreferences.this,
KlarityHome.class);// Connecting setPreferences page
// with Klarity Home Page
List<PracticeVO> tempList = new ArrayList<PracticeVO>();
tempList.add(practiceObj);
homePageIntent.putExtra("SelectedPractice", tempList.toArray());
startActivity(homePageIntent);
}
});
在第二次活动中重温: Intent prefIntent = new Intent(); 列出preferencedPractices =(List)getIntent()。getExtras()。get(“SelectedPractice”);
ArrayAdapter<PracticeVO> praticeAdapter = new ArrayAdapter<PracticeVO>(this, android.R.layout.simple_spinner_item,
preferencedPractices);
praticeAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
practiceSpin.setAdapter(praticeAdapter);
答案 0 :(得分:1)
您需要使用putExtra()函数将值传递给另一个活动
Intent newIntent = new Intent(MainActivity.this, ResultActivity.class);
newIntent.putExtra("yourTxtField",yourTxtField.getText());
接收你需要使用其他getIntent和Bundle。
Intent myIntent = getIntent();
Bundle valores = myIntent.getExtras();
//Objeto que vai calcular os resultados
Resultado resultado = new Resultado();
//Recupera os valores recebidos pelo intent
double seuDinheiro = Double.parseDouble((String) valores.get("seuDinheiro").toString());
要传递对象,请参阅此SO帖子
How do I pass an object from one activity to another on Android?
How to pass an object from one activity to another on Android
答案 1 :(得分:1)
以这种方式尝试
ArrayList<Object> object = new ArrayList<Object>();
Intent intent = new Intent(Current.class, Transfer.class);
Bundle args = new Bundle();
args.putSerializable("ARRAYLIST",(Serializable)object);
intent.putExtra("BUNDLE",args);
startActivity(intent);
在Transfer.class中
Intent intent = getIntent();
Bundle args = intent.getBundleExtra("BUNDLE");
ArrayList<Object> object = (ArrayList<Object>) args.getSerializable("ARRAYLIST");
答案 2 :(得分:0)
PracticeVO
是什么类型的?为了实现您的目标,PracticeVO
需要实现Parcelable
接口(http://developer.android.com/reference/android/os/Parcelable.html)。然后你可以使用这个版本的putExtra()
方法:http://developer.android.com/reference/android/content/Intent.html#putExtra(java.lang.String,android.os.Parcelable [])。
答案 3 :(得分:0)
在PracticeVO
类文件中实现Serializable
从活动发送时:
List<PracticeVO> PracticeVO = new ArrayList<PracticeVO>;
Intent intent = new Intent(SourceActivity.this, TargetActivity.class);
intent.putExtra("PracticeVO", ArrayList<PracticeVO> PracticeVO);
startactivity(PracticeVO);
在接收方:
List<Question> questions = new ArrayList<Question>();
questions = (ArrayList<Question>)getIntent().getSerializableExtra("QuestionListExtra");
来源:Link
答案 4 :(得分:0)
通知fundinProgram =(通知)getIntent()。getSerializableExtra(DETAIL_OBJECT);
答案 5 :(得分:0)
我能够这样实现:
使您的模型类(PracticeVO)和活动类(KlarityHome)实现可序列化。
public class MyClass implements Serializable {...}
在活动类中,将对象存储在ArrayList中而不是List中。
最后,您可以这样做:
// create intent
Intent homePageIntent = new Intent(SetPreferences.this, KlarityHome.class);
// create your ArrayList and add your item(s)
List<PracticeVO> tempList = new ArrayList<PracticeVO>();
tempList.add(practiceObj);
// add your arraylist to your intent
homePageIntent.putExtra("SelectedPractice", tempList);
// go go go ;-)
startActivity(homePageIntent);
我希望这会有所帮助。快活的编码!