簡體   English   中英

如何在微調器中選擇項目以打開新活動

[英]How to select item in Spinner to open a New Activity

我正在嘗試在微調器中選擇一個項目,當我單擊發送按鈕時,該項目將打開一個活動。 例如,活動1和活動2。在微調器中,我具有項目1和項目2。當選擇項目1時,我要打開活動1。 我嘗試了一些代碼,但是沒有用。 這是我的代碼。

activity_main.xml中的微調器

<Spinner
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/spinner"
        android:layout_alignBottom="@+id/button"
        android:layout_toRightOf="@+id/button"
        android:layout_toEndOf="@+id/button"
        android:entries="@array/punpColleges"
        android:spinnerMode="dropdown" />

在我的MainActivity.java中

public class MainActivity extends ActionBarActivity {
    Spinner spin = (Spinner) findViewById(R.id.spinner);
    private static Button button_send;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        OnClickButtonListener();
    }
    public void OnClickButtonListener() {

        button_send = (Button) findViewById(R.id.button);
        button_send.setOnClickListener(
                new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        Intent intent = new Intent();
                        if (spin.getSelectedItem().toString().equals("CCS")) {
                            startActivity(new Intent(MainActivity.this, ListActivity.class));
                        } else {
                            startActivity(new Intent(MainActivity.this, SecondTesting.class));
                        }
                    }
                }
        );

}

字符串位於strings.xml中

<string-array name="punpColleges">
        <item>CCS</item>
        <item>CBE</item>
    </string-array>

我也在AndroidManifest.xml中添加了它

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

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name=".ListActivity"
            android:label="@string/title_activity_list" >
            <intent-filter>
                <action android:name="android.intent.action.ListActivity" />

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

先謝謝您的幫助!

在按鈕上,單擊嘗試此調用您的活動

try {
        myClass = Class.forName("com.example.yourPackageName." + classComplete); //classcomplete as your file name, take it from spinner selected object
        Intent myIntent = new Intent(MainActivity.this, myClass);
        startActivity(myIntent);
    } catch (ClassNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

您無法在課程級別初始化微調器。 必須在調用setContentView之后完成。 除非您將布局設置為活動,否則無法使用findViewById

像這樣定義微調器

Spinner spin;

spin = (Spinner) findViewById(R.id.spinner);
ArrayAdapter<String> spinnerAdapter = new ArrayAdapter<String>(
             this, 
             android.R.layout.simple_spinner_dropdown_item,
             getResources().getStringArray(R.array.punpColleges));
spin.setAdapter(spinnerAdapter);

調用setContentView后在onCreate

定義微調器和變量以存儲微調器的位置

int x=0;
Spinner spin=(Spinner) findViewById(R.id.spinner);
ArrayAdapter<String> spinnerAdapter = new ArrayAdapter<String>(this, 
         android.R.layout.simple_spinner_dropdown_item,
         list);
spin.setAdapter(spinnerAdapter);
spin.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> parent,
                                   View view, int position, long id) {
                                                x=position;
 });
}

現在比較按鈕單擊的位置

if(x==0)
 Intent myIntent = new Intent(MainActivity.this, myClass1);
    startActivity(myIntent);
else
Intent myIntent = new Intent(MainActivity.this, myClass2);
    startActivity(myIntent);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM