2016-12-05 90 views
-2

在我的适配器中,已经有了我的第二个活动的意图,但它无法将该值传递给第二个活动。我如何摆脱这一点? 谢谢! 如何将意图活动传递给片段?将数据从意图传递到片段到活动

第一块碎片

@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); 
+0

details_gridview_view您的活动名称应以uppurcase开头 –

+0

@janki Android资源文件不能包含大写字母。请参阅http://stackoverflow.com/questions/15320951/why-is-it-not-possible-to-use-uppercase-in-naming-resources-in-android –

回答

2

而不是从意图得到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)应该做的。