我的应用程序的这一部分假设将单击的项目的名称及其价格发送到另一个活动。
问题是当第一次发送意图字符串 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 消息显示当前价格,因此在第一次发送时它不应该为空,但由于某种原因它是空的。我还测试了这两个字符串以查看它们是否为空,并发现它是第一次发送意图时为空的价格字符串。有任何想法吗?