如何 select Spinner 中的项目打开一个新的 Activity
How to select item in Spinner to open a New Activity
我正在尝试 select 微调器中的一个项目,当我单击发送按钮时,该项目将打开一个 activity。例如,Activity 1 和 Activity 2。在我的微调器中,我有项目 1 和项目 2。当我选择项目 1 时,我希望 Activity 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>
在此先感谢您的帮助!
点击按钮尝试调用您的 Activity
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();
}
您无法在 class 级别初始化微调器。必须在调用 setContentView
之后完成。除非您将布局设置为 activity,否则无法使用 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
之后
定义微调器和变量来存储微调器的位置
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);
我正在尝试 select 微调器中的一个项目,当我单击发送按钮时,该项目将打开一个 activity。例如,Activity 1 和 Activity 2。在我的微调器中,我有项目 1 和项目 2。当我选择项目 1 时,我希望 Activity 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>
在此先感谢您的帮助!
点击按钮尝试调用您的 Activity
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();
}
您无法在 class 级别初始化微调器。必须在调用 setContentView
之后完成。除非您将布局设置为 activity,否则无法使用 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
定义微调器和变量来存储微调器的位置
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);