2016-02-18 50 views
0

我试图在Spinner中选择一个项目,当点击发送按钮时该项目将打开一个活动。例如,活动1和活动2.在我的微调中,我有项目1和项目2.当我选择项目1时,我希望活动1打开。 我试过一些代码,但它不工作。 这是我的代码。如何在Spinner中选择项目以打开新的活动

微调在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> 

在此先感谢您的帮助!

+0

安置自己的代码微调 – Jas

+0

你是什么意思它不工作?并在调用'setContentView'方法后移动'spin =(Spinner)findViewById(R.id.spinner);'方法 –

+0

当我在智能手机上运行我的应用程序时,它不起作用。 –

回答

0

你不能在类级别初始化微调。必须在致电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); 

onCreate调用setContentView

+0

在我的if语句中如何?有没有错误? –

+0

如果块对我来说很好看。您需要按照我的建议更新您的代码。 – Rohit5k2

+0

它的工作原理!非常感谢!^_^ –

0

在点击按钮试试这个打电话给你的活动

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(); 
    } 
0

定义微调和变量来存储微调的位置后

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); 
相关问题