2016-12-05 12 views
-2

私のアダプターにはすでに2番目のアクティビティーのインテントがありますが、2番目のアクティビティーに値を渡すことはできません。どうすればそれを取り除くことができますか? ありがとうございます! intentアクティビティをフラグメントに渡すにはどうすればよいですか?インテントからフラグメントへのデータの受け渡し

最初のフラグメント

@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

詳細_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)する必要があります。

関連する問題