【问题标题】:Why can't I jump to a selected new activity once I choose from my spinner?为什么我从微调器中选择后无法跳转到选定的新活动?
【发布时间】:2019-09-22 02:08:39
【问题描述】:

我正在尝试从微调器中选择一个国家,然后跳转到相应的活动。例如:如果我在 Main3Activity 中选择我的微调器的“UK”,则跳转到新的活动 MainActivity。

但我不知道为什么它不能跳。它可以只选择然后应用程序结束。

关于主文件有什么我需要修改的吗?

谢谢:)

<activity android:name=".Main2Activity">
    <intent-filter>
         <action android:name="android.intent.action.MAIN" />

         <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>

<activity android:name=".Main3Activity" />
<activity android:name=".MainActivity" />
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string-array name="currency_array">
        <item>Australia</item>
        <item>Bitcorn</item>
        <item>Brazil</item>
        <item>China</item>
        <item>Egypt</item>
        <item>Europe</item>
        <item>Japan</item>
        <item>UK</item>
        <item>USA</item>
    </string-array>
</resources>
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main3);

    Spinner currency = (Spinner) findViewById(R.id.currency);
    ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.currency_array, android.R.layout.simple_spinner_item);
    //specify which array to use for spinner

    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    //load array to spinner

    currency.setAdapter(adapter);

    //respond to the user


}//end method


@Override
public void onItemSelected (AdapterView < ? > adapterView, View view,int index, long l){

    String selected = adapterView.getItemAtPosition(index).toString();
    Toast.makeText(adapterView.getContext(), selected, Toast.LENGTH_SHORT).show();


    if(adapterView.getContext().equals("UK")){
        Intent intent = new Intent(Main3Activity.this, MainActivity.class);
        startActivity(intent);
    }


    /*if(index == 0){
        Intent intent = new Intent(Main3Activity.this, MainActivity.class);
        startActivity(intent);
    }
    */


}//end onItemSelected


public void onNothingSelected (AdapterView < ? > adapterView) {
} //end onNothingSelected

【问题讨论】:

  • It can just select and then the app ends 的意思是当您单击微调器中的项目然后您的应用程序关闭时,不是吗?如果是真的,请打开Logcat 并在此处粘贴错误日志

标签: java android button android-activity spinner


【解决方案1】:

adapterView.getContext() 替换为selected。您要检查项目文本是否等于UK,而不是与任何地方都不相关的Context

【讨论】:

    【解决方案2】:

    试试这个:

    spinner.setOnItemSelectedListener(this);
    

    或者:

    spinner.setOnItemSelectedListener(new OnItemSelectedListener() 
    {
        public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
            String selectedItem = parent.getItemAtPosition(position).toString();
            switch(selectedItem) {
                case "UK":
                    Intent intent = new Intent(Main3Activity.this, MainActivity.class);
                    startActivity(intent);
                    break;
                case "USA":
                    // do something
                    break;
            }
        }
        public void onNothingSelected(AdapterView<?> parent) {
    
        }           
    });
    

    【讨论】:

    • 是的,我在新的 OnItemSelectedListener() 中添加了这一行,它可以工作 :) 谢谢~
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-26
    • 2019-07-29
    相关资源
    最近更新 更多