繁体   English   中英

在另一个类TextView中显示微调框选择的项目

[英]Displaying Spinner selected item in another class TextView

因此,我有一个Spinner,并且我不希望用户从中选择一个项目,然后在另一活动中显示他的选择。.但是Button甚至不做任何事情。。我猜错是intent.putExt int position == 0 ..有人可以帮助我吗?

cilj = (Spinner) findViewById(R.id.spinnerPrehranaCilj);
            prikaziRezultat = (Button) findViewById(R.id.buttonPrehranaPrikaziRezultate);


            ArrayAdapter<CharSequence> ciljPrehranaSpinnerAdapter = ArrayAdapter.createFromResource(this, R.array.spinner_cilj_prehrana, android.R.layout.simple_spinner_item);
            ciljPrehranaSpinnerAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
            cilj.setAdapter(ciljPrehranaSpinnerAdapter);

            prikaziRezultat.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {

                    cilj.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
                        @Override
                        public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {

                            if (position == 0){
                                Intent intent = new Intent(getApplicationContext(), AppLayoutMain.class);
                                intent.putExtra("ciljJePovecanjeTezine", cilj.getItemIdAtPosition(0));
                                startActivity(intent);
                            } else if (position == 1){
                                Toast.makeText(PrehranaInputMain.this, "drugo bi trebalo bit odabrano", Toast.LENGTH_SHORT).show();
                            }

                        }

                        @Override
                        public void onNothingSelected(AdapterView<?> parent) {

                        }
                    });

                }
            });

这是第二个活动

 String prehrana = intent.getStringExtra("ciljJePovecanjeTezine");

        ciljPrehranaRezultat = (TextView) findViewById(R.id.textViewPrehranaCiljRezultat);
        ciljPrehranaRezultat.setText(prehrana);

谢谢!!

这是第一次活动的修改后的代码:

 cilj = (Spinner) findViewById(R.id.spinnerPrehranaCilj);
        prikaziRezultat = (Button) findViewById(R.id.buttonPrehranaPrikaziRezultate);


        ArrayAdapter<CharSequence> ciljPrehranaSpinnerAdapter = ArrayAdapter.createFromResource(this, R.array.spinner_cilj_prehrana, android.R.layout.simple_spinner_item);
        ciljPrehranaSpinnerAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        cilj.setAdapter(ciljPrehranaSpinnerAdapter);


                cilj.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
                    @Override
                    public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
                        if (position == 0){
                            Toast.makeText(PrehranaInputMain.this, R.string.cilj_prehrana_nista_odabrano, Toast.LENGTH_SHORT).show();
                        } else if (position == 1){
                            Intent intent = new Intent(getApplicationContext(), AppLayoutMain.class);
                            intent.putExtra("ciljJePovecanjeTezine", cilj.getSelectedItem().toString());
                            startActivity(intent);
                        } else if (position == 2){
                            Intent intent = new Intent(getApplicationContext(), AppLayoutMain.class);
                            intent.putExtra("ciljJeMrsavljenje", cilj.getSelectedItem().toString());
                            startActivity(intent);
                        }
                    }

                    @Override
                    public void onNothingSelected(AdapterView<?> parent) {

                    }
                });
        prikaziRezultat.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
            }
        });

和第二项活动

      String prehrana = intent.getStringExtra("ciljJePovecanjeTezine");
            String prehrana2 = intent.getStringExtra("ciljJeMrsavljenje");

            ciljPrehranaRezultat = (TextView) findViewById(R.id.textViewPrehranaCiljRezultat);
            ciljPrehranaRezultat.setText(prehrana);

// SEEMS LIKE SOME IF STATEMENT NEEDED HERE?
            //ciljPrehranaRezultat.setText(prehrana2);

在用户单击按钮之前,不会设置下拉菜单的侦听器,这意味着直到您至少单击一次按钮,从下拉菜单中选择一项才起作用。

单击按钮后是否尝试从微调器中选择一个项目?

如果要在用户单击按钮时转到其他活动,请仅将startActivity(intent)保留在onClick()方法中,然后将onItemSelected()方法上移一个级别,然后将其作为全局变量移动。

cilj = (Spinner) findViewById(R.id.spinnerPrehranaCilj);
prikaziRezultat = (Button)      findViewById(R.id.buttonPrehranaPrikaziRezultate);
Intent intent = new Intent(getApplicationContext(), AppLayoutMain.class);

ArrayAdapter<CharSequence> ciljPrehranaSpinnerAdapter = ArrayAdapter.createFromResource(this, R.array.spinner_cilj_prehrana, android.R.layout.simple_spinner_item);
ciljPrehranaSpinnerAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
cilj.setAdapter(ciljPrehranaSpinnerAdapter);

                cilj.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
                    @Override
                    public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {

                        if (position == 0){
                            intent.putExtra("ciljJePovecanjeTezine", cilj.getItemIdAtPosition(0));
                        } else if (position == 1){
                            Toast.makeText(PrehranaInputMain.this, "drugo bi trebalo bit odabrano", Toast.LENGTH_SHORT).show();
                        }

                    }

                    @Override
                    public void onNothingSelected(AdapterView<?> parent) {

                    }
                });

        prikaziRezultat.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                            startActivity(intent);
            }
        });

同样,即使在那种情况下,在我看来,只有当用户选择位置“ 0”的项目时,您才跳到该活动。 我们可以假设这不是空格,而您的微调器中只有2个条目吗?

更改以下行:

if (position == 0){
      Intent intent = new Intent(getApplicationContext(), AppLayoutMain.class);
      intent.putExtra("ciljJePovecanjeTezine", (CharSequence)cilj.getItemIdAtPosition(0));
      startActivity(intent);
} else if (position == 1){
      Toast.makeText(PrehranaInputMain.this, "drugo bi trebalo bit odabrano", Toast.LENGTH_SHORT).show();
}

至:

Intent intent = new Intent(getApplicationContext(), AppLayoutMain.class);
intent.putExtra("ciljJePovecanjeTezine", cilj.getItemAtPosition(position));
startActivity(intent);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM