如何使用单个变量将选定的imageview值传递给另一个活动?

时间:2013-08-02 06:50:24

标签: android android-intent bundle

在下面的代码中,我将txt1 txt2 txt3名称作为参数传递给另一个活动,并获得三个时间变量param1,param2,param3。而不是这些,how do I use just a single variable which saves the value of press imageview? Can I get just a single variable which shows the press button value?它的工作不是,但如果我按早餐是值得iwllb大胆,但如果我按晚餐或午餐textview不粗体告诉我为什么???

   public class thirdstep extends Activity {
        ImageButton imgNews, imgContact, imgSetting;
        TextView txt1, txt2, txt3;
        private ImageLoader2 imgLoader;
        String MenuSelect;

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.category_list2);

            ImageView img1 = (ImageView) findViewById(R.id.img1);
            txt1 = (TextView) findViewById(R.id.txt1);

            ImageView img2 = (ImageView) findViewById(R.id.img2);
            txt2 = (TextView) findViewById(R.id.txt2);

            ImageView img3 = (ImageView) findViewById(R.id.img3);
            txt3 = (TextView) findViewById(R.id.txt3);

            MenuSelect = Utils.MenuSelect;
            imgLoader = new ImageLoader2(this);

            try {

                HttpClient client = new DefaultHttpClient();
                HttpConnectionParams
                        .setConnectionTimeout(client.getParams(), 15000);
                HttpConnectionParams.setSoTimeout(client.getParams(), 15000);
                HttpUriRequest request = new HttpGet(MenuSelect);
                HttpResponse response = client.execute(request);
                InputStream atomInputStream = response.getEntity().getContent();
                BufferedReader in = new BufferedReader(new InputStreamReader(
                        atomInputStream));

                String line;
                String str = "";
                while ((line = in.readLine()) != null) {
                    str += line;
                }

                JSONObject json = new JSONObject(str);
                JSONArray data = json.getJSONArray("worldpopulation");
                JSONObject jsonOrder = (JSONObject) data.get(0);

                txt1.setText(jsonOrder.getString("name"));
                String url1 = jsonOrder.getString("url");
                imgLoader.DisplayImage(url1, img1);

                JSONObject jsonOrder2 = (JSONObject) data.get(1);
                txt2.setText(jsonOrder2.getString("name2"));
                String url2 = jsonOrder2.getString("url2");
                imgLoader.DisplayImage(url2, img2);

                JSONObject jsonOrder3 = (JSONObject) data.get(2);
                txt3.setText(jsonOrder3.getString("name3"));
                String url3 = jsonOrder3.getString("url3");
                imgLoader.DisplayImage(url3, img3);

            } catch (MalformedURLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IOException e) {
                // TODO Auto-generated catch block

                e.printStackTrace();
            } catch (JSONException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

            img1.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub

            Intent iMenuList = new Intent(thirdstep.this,
                    fourthscreen.class);

            iMenuList.putExtra("Menuitem", txt1.getText().toString());

            startActivity(iMenuList);

        }
    });

    img2.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub

            Intent iMenuList = new Intent(thirdstep.this,
                    fourthscreen.class);

            iMenuList.putExtra("Menuitem", txt2.getText().toString());

            startActivity(iMenuList);

        }
    });

    img3.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub

            Intent iMenuList = new Intent(thirdstep.this,
                    fourthscreen.class);

            iMenuList.putExtra("Menuitem", txt3.getText().toString());

            startActivity(iMenuList);

        }
    });

}

 }


            public class fourthscreen extends Activity 

            Bundle bundle = this.getIntent().getExtras();
            String param1 = bundle.getString("Breakfast");
            String param2 = bundle.getString("Lunch");
            String param3 = bundle.getString("Supper");

Is it possible i just used single variable?

   String param1 = bundle.getString("Presimageview value???");





                         if(param1.equalsIgnoreCase("BreakFast"))
     {
         Breakfast.setTypeface(null, Typeface.BOLD);
     }
     else 
         if(param1.equalsIgnoreCase("Lunch"))
         {
             Lunch.setTypeface(null, Typeface.BOLD);
         }
         else 
             if(param1.equalsIgnoreCase("Supper"))
             {
                 Lunch.setTypeface(null, Typeface.BOLD);
             }


     i did using this code  iMenuList.putExtra("Menuitem", 
   txt3.getText().toString());   iswork now
 //textview value not bold on lunch and supper only brekafast value wll bold

3 个答案:

答案 0 :(得分:1)

只需点击每个图片点击一行即可。

iMenuList.putExtra("LUNCH_TYPE", txt.getText().toString());

而不是

iMenuList.putExtra("Breakfast", txt1.getText().toString());

iMenuList.putExtra("Lunch", txt2.getText().toString());

iMenuList.putExtra("Supper", txt3.getText().toString());

并且在第四个屏幕活动中只写下单行

String strLunchType  = this.getIntent().getStringExtras("LUNCH_TYPE");

答案 1 :(得分:0)

目前还不清楚你在寻找什么。但是,看看这是否是你想要的:

img1.setOnClickListener(new View.OnClickListener() {

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub

        Intent iMenuList = new Intent(thirdstep.this,
                fourthscreen.class);

        iMenuList.putExtra("Choice", "BreakFast");

        startActivity(iMenuList);

    }
});

img2.setOnClickListener(new View.OnClickListener() {

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub

        Intent iMenuList = new Intent(thirdstep.this,
                fourthscreen.class);

        iMenuList.putExtra("Choice", "Lunch");

        startActivity(iMenuList);

    }
});

img3.setOnClickListener(new View.OnClickListener() {

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub

        Intent iMenuList = new Intent(thirdstep.this,
                fourthscreen.class);

        iMenuList.putExtra("Choice", "Supper");

        startActivity(iMenuList);

    }
});

fourthscreen活动中:

String param = bundle.getStringExtra("Choice");

Toast.makeText(this, param, Toast.LENGTH_LONG).show();

答案 2 :(得分:0)

为什么不在每个OnClickListener中使用相同的Extra名称?:

  iMenuList.putExtra("Food", txtN.getText().toString());

然后阅读" Food"在你的屏幕上额外:

  String param = bundle.getString("Food");