我的应用程序的这一部分假设将点击的项目名称及其价格发送给另一项活动。
问题是当第一次项目字符串正确并且价格字符串为空时发送意图字符串extra。第二次项目字符串正确,价格显示前一个字符串而不是当前字符串。
这是我的代码: 发送活动
@Override
public void onItemClick(final AdapterView<?> parent,
final View view, final int position, final long id) {
(new GetPriceTask()).execute((Object) ((TextView) view)
.getText());
final String selectedFromList =(String) (lv.getItemAtPosition(position));
Intent data = new Intent(mainActivity, TabActivity.class);
Bundle extras = new Bundle();
extras.putString("price",result);
extras.putString("item",selectedFromList);
data.putExtras(extras);
startActivity(data);
}
});
接收活动:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.tab_layout);
Button b = (Button) findViewById(R.id.pay_button);
b.setOnClickListener(this);
TableLayout table = (TableLayout) findViewById(R.id.the_table);
final TableRow row = new TableRow(this);
Bundle extras = getIntent().getExtras();
String item = extras.getString("item");
String price = extras.getString("price");
if(price == null){
price = "null";
}
TextView tv = new TextView(this);
TextView tv2 = new TextView(this);
row.setClickable(true);
tv.setText(item);
tv.setGravity(Gravity.LEFT);
tv.setFreezesText(true);
row.addView(tv);
tv2.setText(price);
tv2.setGravity(Gravity.LEFT);
tv2.setFreezesText(true);
row.addView(tv2);
我还有一个toast消息显示当前价格,所以它不应该在第一次发送时为空,但由于某种原因它是。我还测试了两个字符串以查看它们是否为空,并发现它是第一次发送意图时为空的价格字符串。有什么想法吗?