Fragment和Activity之间的传递参数为null

时间:2014-05-17 11:22:24

标签: android android-intent android-fragments

我遇到过这样的问题。好像我正在做的一切正确,但参数的接收值是null。希望得到一些帮助。

需要在GridView中传递item的索引。 这是Fragment类:

public class BoardsFragment extends Fragment{
private GridView gridView;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle    savedInstanceState) {
    View v = inflater.inflate(R.layout.fragment_main, container, false);
    gridView = (GridView) v.findViewById(R.id.gridview);
    return v;
}
@Override
public void onResume(){
    super.onResume();
    gridView.setAdapter(new MyAdapter(getActivity()));

    gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
            Intent myIntent = new Intent(view.getContext(), InfoActivity.class);
            myIntent.putExtra("ItemID", i); //Optional parameters
            startActivity(myIntent);
        }
    });

}

我需要传递此ItemID。这是我收到的地方:

public class InfoActivity extends Activity {
String itemID;
TextView brand;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_info);
    brand = (TextView) findViewById(R.id.textViewBrand);
    itemID = this.getIntent().getStringExtra("ItemID"); 
    brand.setText(itemID);
}

}

不知道为什么但是这个itemID在这个类中是null。有什么想法吗?

2 个答案:

答案 0 :(得分:1)

传递整数后无法获取字符串,因此请更改此

itemID = this.getIntent().getStringExtra("ItemID");

itemID = this.getIntent().getIntExtra("ItemID"); 

答案 1 :(得分:1)

您正在传递值int,那么如何在活动中获取字符串。

更新代码

  myIntent.putExtra("ItemID", i+"");

感谢。