在不起作用的活动之间传递参数

时间:2011-08-04 02:46:59

标签: java android gridview

传递参数适用于2个正常活动,但是当我尝试将其从 gridview 传递到另一个活动时,该值返回null

第一项活动

        gridview.setOnItemClickListener(new OnItemClickListener() {
        public void onItemClick(AdapterView<?> parent, View v, int position, long id) {

            //This takes the position id of the image and change
            //it to match category id
            position = position + 1;
            String positionId = String.valueOf(position);

            System.out.println(positionId);

            Toast.makeText(MenuActivity.this, "position =" + positionId + "\nid =" + id, Toast.LENGTH_SHORT).show();
            Intent myIntent = new Intent(v.getContext(), MenuItemActivity.class);
            myIntent.putExtra("hello", "hello");
            startActivityForResult(myIntent, 0);


        }
    });

我的辅助活动(MenuItemActivity.java)

    public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.menuitem);


    try{
        Bundle extras = getIntent().getExtras();
        String category = null;
        extras.getString("Category "+extras.getString("hello"));
        System.out.println("Category = "+category);
    } catch(Exception e){ 
        System.out.println("Error "+e.getMessage());
    }

2 个答案:

答案 0 :(得分:3)

从这里看起来像主人&gt;&gt;详细页面。如果是这样,你为什么要打电话

startActivityForResult(myIntent, 0);

而不是简单的

startActivity(myIntent);

你可以尝试这个并告诉我这是否有效。

getIntent().getStringExtra("hello");

答案 1 :(得分:0)

在您的第二项活动中,您需要致电setResult以实际将数据传回第一项活动。