我正在尝试将一些数据从一个活动发送到另一个活动,而且它的工作正常但不像我想要工作。 问题1 - 事情变得混乱。在listitem的Next Activity部分将找到一个不正确的textView,并转到正确的textview。 问题2-我只能在新活动中列出1项,但我希望能够发送多个列表项。我认为问题在于将不同类型的putExtra请求组合到同一个地方,就像我在这里一样。
.putExtra( “inputPrice”,(CharSequence中)挑) .putStringArrayListExtra(“list”,listItems)
Ant的帮助将不胜感激。
将数据发送到下一个活动
final TextView username =(TextView)findViewById(R.id.resultTextView);
String uname = username.getText().toString();
final TextView uplane =(TextView)findViewById(R.id.inputPrice);
String pick = uplane.getText().toString();
final TextView daplane =(TextView)findViewById(R.id.date);
String watch = daplane.getText().toString();
startActivity(new Intent(MenuView1Activity.this,RecordCheckActivity.class)
.putExtra("date",(CharSequence)watch)
.putExtra("Card Number",(CharSequence)uname)
.putExtra("inputPrice",(CharSequence)pick)
.putStringArrayListExtra("list", listItems)
);
finish();
这是下一个活动
Intent is = getIntent();
if (is.getCharSequenceExtra("Card Number") != null) {
final TextView setmsg = (TextView)findViewById(R.id.saleRccn);
setmsg.setText(is.getCharSequenceExtra("Card Number"));
}
Intent it = getIntent();
if (it.getCharSequenceExtra("date") != null) {
final TextView setmsg = (TextView)findViewById(R.id.saleTime);
setmsg.setText(it.getCharSequenceExtra("date"));
}
Intent id1 = getIntent();
if (id1.getCharSequenceExtra("inputPrice") != null) {
final TextView setmsg = (TextView)findViewById(R.id.saleName);
setmsg.setText(id1.getCharSequenceExtra("inputPrice"));
}
ArrayList<String> al= new ArrayList<String>();
al = getIntent().getExtras().getStringArrayList("list");
saleNotes= (TextView) findViewById(R.id.saleNotes);
saleNotes.setText(al.get(0));
答案 0 :(得分:2)
好吧,还有一些事情:
首先,您不需要将字符串转换为CharSequence
。
第二件事,
定义意图,添加额外内容,然后调用startActivity,如下所示:
Intent intent = new Intent(MenuView1Activity.this,RecordCheckActivity.class);
intent.putExtra("date", watch);
startActivity(intent);
第三,在检索intent时首先创建一个bundle,如下所示:
Bundle extras = getIntent().getExtras();
String date = extras.getString("date");
修改强>
以下是将整个数组列表转换为单个字符串并将其添加到textview的方法。
String listString = "";
for (String s : al)
{
listString += s + "\t"; // use " " for space, "\n" for new line instead of "\t"
}
System.out.println(listString);
saleNotes.setText(listString);
希望这有帮助!
答案 1 :(得分:1)
试试这个,不要只使用CharSequence
字符串值
startActivity(new Intent(MenuView1Activity.this,RecordCheckActivity.class)
.putExtra("date",watch)
.putExtra("Card Number",uname)
.putExtra("inputPrice",pick)
.putStringArrayListExtra("list", listItems)
);
得到这样的
Intent is = getIntent();
if (is.getCharSequenceExtra("Card Number") != null) {
final TextView setmsg = (TextView)findViewById(R.id.saleRccn);
setmsg.setText(is.getStringExtra("Card Number"));
}