【问题标题】:Passing data from intent to fragment to activity将数据从意图传递到片段到活动
【发布时间】:2016-12-05 10:02:24
【问题描述】:

在我的适配器中,我的第二个活动已经有一个意图,但它不能将值传递给第二个活动。我怎样才能摆脱它? 谢谢!! 如何将意图活动传递给片段?

第一个片段

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

【问题讨论】:

标签: java android android-fragments android-intent


【解决方案1】:

您应该从 Intent 中获取额外的字符串,而不是从 Intent 中获取 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);

getActivity().getApplicationContext().startActivity(intent); 在这里不是必需的。 startActivity(intent) 应该可以。

【讨论】:

    【解决方案2】:
    Here's the solution of ur problem..
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.details_gridview_view);
    
        Bundle extras = this.getIntent().getExtras();
        String name = extras.getString("title");
        String price =extras.getString("price");
        String qty =extras.getString("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);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-24
      • 2018-03-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多