将数据从意图传递到片段到活动
问题描述:
在我的适配器中,已经有了我的第二个活动的意图,但它无法将该值传递给第二个活动。我如何摆脱这一点? 谢谢! 如何将意图活动传递给片段?将数据从意图传递到片段到活动
第一块碎片
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = mInflater.inflate(R.layout.detailsitem, null);
}
if(position ==0) {
}else {
final Product myObj = DetailList.get(position);
final TextView Detailtext = (TextView) convertView.findViewById(R.id.detailsitem);
Detailtext.setText("" + myObj.getProductName());
final TextView Detailsprice= (TextView)convertView.findViewById(R.id.detailsprice);
Detailsprice.setText("" + myObj.getProductPrice());
preview = (ImageButton) convertView.findViewById(R.id.preview);
preview.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent=new Intent(getActivity().getApplicationContext(),details_gridview_view.class).setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.putExtra("title", "1");
getActivity().getApplicationContext().startActivity(intent);
startActivity(intent);
}
});
}
return convertView;
}
次活动
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.details_gridview_view);
String name = getIntent().getStringExtra("title");
String price =getIntent().getStringExtra("price");
String qty =getIntent().getStringExtra("qty");
TextView titleTextView = (TextView) findViewById(R.id.title);
titleTextView.setText(name);
TextView priceTextView = (TextView) findViewById(R.id.price);
titleTextView.setText(price);
TextView qtyTextView = (TextView) findViewById(R.id.qty);
titleTextView.setText(qty);
答
而不是从意图得到stringExtra的,你应该从意图获得额外的,并从那里得到的字符串。
所以不是
String name = getIntent().getStringExtra("title");
String price = getIntent().getStringExtra("price");
String qty = getIntent().getStringExtra("qty");
用途:
Bundle extras = this.getIntent().getExtras();
String name = extras.getString("title");
String price = extras.getString("price");
String qty = extras.getString("qty");
还注意到,您没有设置"price"
和"qty"
你也开始活动了两次:
getActivity().getApplicationContext().startActivity(intent);
在这里不是必需的。 startActivity(intent)
应该做的。
details_gridview_view您的活动名称应以uppurcase开头 –
@janki Android资源文件不能包含大写字母。请参阅http://*.com/questions/15320951/why-is-it-not-possible-to-use-uppercase-in-naming-resources-in-android –