我是新来的机器人,我有3多个纺纱作为波纹管的活动 微调1:部门 Spinner2:学期 Spinner3:科目 和一个按钮Android的纺纱动态数据绑定
spinner1显示了部门选择部门必须在选择的学期显示该学期它必须显示主题spinner 注意:-SUBJECT SPINNER依赖于学期SPINNER和部门SPINNER的选择。
类似国家,州,市纱厂但建议我一些其他的想法,因为我使用字符串资源列出纺纱的项目做
请帮我
我是新来的机器人,我有3多个纺纱作为波纹管的活动 微调1:部门 Spinner2:学期 Spinner3:科目 和一个按钮Android的纺纱动态数据绑定
spinner1显示了部门选择部门必须在选择的学期显示该学期它必须显示主题spinner 注意:-SUBJECT SPINNER依赖于学期SPINNER和部门SPINNER的选择。
类似国家,州,市纱厂但建议我一些其他的想法,因为我使用字符串资源列出纺纱的项目做
请帮我
尝试像这样在你的活动。
首先,让你的活动实现AdapterView.OnItemSelectedListener & View.OnClickListener。
private Spinner mDepartmentSpinner;
private Spinner mSemesterSpinner;
private Spinner mSubjectSpinner;
private Button mButton;
// Values to fill first spinner with.
private String[] mDepartments = {
"Department 1",
"Department 2",
"Department 3",
"Department 4",
};
private String[] mSemesters;
private String[] mSubjects;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initViews();
}
private void initViews() {
// Find the spinners and button, declared in the activity's resource file
mDepartmentSpinner = (Spinner) findViewById(R.id.department_spinner);
mSemesterSpinner = (Spinner) findViewById(R.id.semester_spinner);
mSubjectSpinner = (Spinner) findViewById(R.id.subject_spinner);
mButton = (Button) findViewById(R.id.button);
// Initialise spinner with values, placing them into a textview
mDepartmentSpinner.setAdapter(new ArrayAdapter<String>(getContext(), R.layout.text_view, mDepartments));
// Attach a listener for item selection
departmentSpinner.setOnItemSelectedListener(this);
}
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
// Work out which spinner was selected
switch (view.getId()) {
case R.id.department_spinner:
// Get the selected item
String selectedDepartment = mDepartments[position];
// Get values to fill the semester spinner with, based on initial selection.
mSemesters = getSemestersFor(selectedDepartment);
// Initialise spinner with values, placing them into a textview
mSemesterSpinner.setAdapter(new ArrayAdapter<String>(getContext(), R.layout.text_view, mSemesters));
// Attach a listener for item selection
mSemesterSpinner.setOnItemSelectedListener(this);
break;
case R.id.semester_spinner:
// Get the selected item
String selectedSemester = mSemesters[position];
// Get values to fill the subject spinner with, based on second spinner selection.
mSubjects = getSubjectsFor(selectedSemester);
// Initialise spinner with values, placing them into a textview
mSubjectSpinner.setAdapter(new ArrayAdapter<String>(getContext(), R.layout.text_view, subjects));
// Attach a listener for item selection
mSubjectSpinner.setOnItemSelectedListener(this);
break;
case R.id.subject_spinner:
mButton.setOnClickListener(this);
break;
}
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
mButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(getApplicationContext(), "Please select an option from each spinner.", Toast.LENGTH_LONG).show();
}
});
}
@Override
public void onClick(View v) {
// Go to your new activity, passing the selected subject
Intent intent = new Intent(this, SubjectActivity.class);
intent.putExtra("KEY_SUBJECT", (String) mSubjectSpinner.getSelectedItem());
startActivity(intent);
}
你可以在像这样的SubjectActivity选定的主题...
@Override
public void onCreate(Bundle savedInstanceState) {
if (getIntent().getExtras().containsKey("KEY_SUBJECT") {
String subject = getIntent().getExtras().getString("KEY_SUBJECT");
}
}
代码R.layout.text_view
<?xml version="1.0" encoding="utf-8"?>
<TextView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
您需要实现以下方法你自己,我不知道你的逻辑!
private String[] getSemestersFor(String department) {
// your code here
}
private String[] getSubjectsFor(String semester) {
// your code here
}
谢谢主席查理它可以帮助我我会检查出 –
你能告诉我什么应该返回getsemester和getsubject函数,因为我再次使用该方法中的切换条件,我只在主要活动java文件中使用这些方法 –
我成立此行中的错误也是 “mSubjectSpinner.setAdapter(new ArrayAdapter
的可能的复制[安卓:填写微调从Java代码编程(http://stackoverflow.com/questions/11920754/android-fill-spinner-from-java-code-programmatically) –