如何根据微调器值启动新的 activity

how to launch new activity based on spinner value

我正在构建这个应用程序,它在第一个 activity 上有一个微调器和按钮,但我还有其他活动是根据微调器值启动的。但现在的问题是当我点击按钮时没有任何反应,可能是哪里出了问题?这是我的代码

public class ow extends AppCompatActivity  {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_ow);
       Button button1=(Button) findViewById(R.id.tac);

        Spinner spin = (Spinner) findViewById(R.id.spinner);
        final String text = spin.getSelectedItem().toString();
        button1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (text.equals("GTB")) {
                    Intent intent = new Intent(ow.this, gtb.class);
                    startActivity(intent);
                }else if(text.equals("ZENITH")){
                    Intent intent=new Intent(v.getContext(),z.class);
                    startActivity(intent);
                }
            }

        });

    }
}

你的 OnClickListenerAnonymous 类型。字符串值在 onCreate 中提供给它,这是默认值,可能是 null。使用 spinner 作为 class 成员并在 onClick 方法中访问选定的项目值。

试试这个

    @Override
    protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_ow);
       Button button1=(Button) findViewById(R.id.tac);

        final Spinner spin = (Spinner) findViewById(R.id.spinner);  
        button1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String text = spin.getSelectedItem().toString();

                if (text.equals("GTB")) {
                    Intent intent = new Intent(ow.this, gtb.class);
                    startActivity(intent);
                }else if(text.equals("ZENITH")){
                    Intent intent=new Intent(v.getContext(),z.class);
                    startActivity(intent);
                }
            }

        });

    }}

你必须在按钮点击监听器

上写下一行
final String text = spin.getSelectedItem().toString();

喜欢:

    button1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String text = spin.getSelectedItem().toString();

                if (text.equals("GTB")) {
                    Intent intent = new Intent(ow.this, gtb.class);
                    startActivity(intent);
                }else if(text.equals("ZENITH")){
                    Intent intent=new Intent(v.getContext(),z.class);
                    startActivity(intent);
                }
            }

        });

希望有用。

你必须创建一个微调器事件。

例如:

    spinner = (Spinner) findViewById(R.id.spinner);
    adapter = ArrayAdapter.createFromResource(this,
    R.array.opcoes,android.R.layout.simple_spinner_item);
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spinner.setAdapter(adapter);
    spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> parent, 
        View view, int position, long l) {

            String item = spinner.getSelectedItem().toString();

   Switch(item){
   case item1:
   Intent yourAcitivity = new Intent(this, yourAcitivity.class);
            startActivity(yourAcitivity );
   case item2:
   Intent yourSecondAcitivity = new Intent(this, yourSecondAcitivity.class);
            startActivity(yourSecondAcitivity);
    //Keep adding items.

}

        }

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

        }
    });