我想问一些可能很简单的事情,但我仍然无法找到问题。
我从一个活动向另一个活动发送了一个字符串,但它没有显示任何内容。 我已经多次检查了一下,我认为我的代码没有任何问题。
这是我的第一个java代码(FoodFilter.class)
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
// getting values from selected ListItem
String name = ((TextView) view.findViewById(R.id.filter_type))
.getText().toString();
String cost = ((TextView) view.findViewById(R.id.item_list))
.getText().toString();
String description = ((TextView) view.findViewById(R.id.category_name))
.getText().toString();
// Starting single contact activity
Intent in = new Intent(getApplicationContext(),
FoodFilterDetail.class);
in.putExtra(TAG_NAME, name);
in.putExtra(TAG_EMAIL, cost);
in.putExtra(TAG_PHONE_MOBILE, description);
startActivity(in);
}
});
这是FoodFilterDetail.class
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.setContentView(R.layout.foods_filterdetail);
TextView txtProduct = (TextView) findViewById(R.id.filterItemList);
Intent i = getIntent();
// getting attached intent data
String product = i.getStringExtra("TAG_NAME");
// displaying selected product name
txtProduct.setText(product);
}
这是我的xml
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@android:color/transparent"
android:layout_marginLeft="7dip"
android:layout_marginRight="7dip" >
<TextView
android:id="@+id/filterItemList"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="15dip"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:background="@android:color/transparent"
android:text="Sort By"
android:textSize="20sp"
android:textStyle="bold" />
</RelativeLayout>
我从json parse获取FoodFilter.class
上的数据,它运行正常。我可以在ListView
上显示所有数据,但是当我将字符串发送到FoodFilterDetail.class
时,它没有显示任何内容,并且我的代码中没有错误或警告。
有没有人可以帮我解决这个问题?我一整天都在搜索这个问题。
先谢谢
答案 0 :(得分:2)
使用i.getStringExtra(TAG_NAME);
代替i.getStringExtra("TAG_NAME");
答案 1 :(得分:1)
在FoodFilter.java中创建一个变量
public static final String TAG_NAME = "name";
使用它 在FoodFilter.java中
in.putExtra(TAG_NAME, name);
并在FoodFilterDetail.java中
String product = i.getStringExtra(FoodFilter.TAG_NAME);
对所有其他变量
执行相同操作答案 2 :(得分:0)
我假设您在第一个活动中定义了TAG_NAME
:
public static final String TAG_NAME = "some_random_key";
然后你将它设置为Intent
的关键字:
in.putExtra(TAG_NAME, name);
在第二个活动中,您试图像这样访问它:
String product = i.getStringExtra("TAG_NAME");
由于密钥不是"TAG_NAME"
而是"some_random_key"
,因此无效。因此,要在第二个活动中访问它,您需要在第二个活动中定义TAG_NAME
,就像在第一个活动中一样:
public static final String TAG_NAME = "some_random_key";
然后访问字符串,如:
String product = i.getStringExtra(TAG_NAME);