[英]Android Studio - Spinner - get Spinner item does not work
i tryed for hours to get the item out of my Spinner-Object but i always get the first item out of the Spinner Array. 我尝试了几个小时才能从Spinner-Object中获得该项目,但我总是从Spinner Array中获得第一项。 The array is defined in the string.xml.
该数组在string.xml中定义。 Is this mistake caused by the different contexts?
这个错误是由不同的情况引起的吗? When i only use the getSelectedItem command, i get a NullPointer Reference
当我仅使用getSelectedItem命令时,会得到一个NullPointer参考
String taskName;
String taskTag;
Spinner spinner;
ArrayAdapter<CharSequence> adapter;
public void newTaskName() {
final AlertDialog.Builder taskBuilder = new AlertDialog.Builder( MainActivity.this );
final View bView = getLayoutInflater().inflate( R.layout.dialog_taskname, null );
final EditText bTaskName = (EditText) bView.findViewById( R.id.taskNameEditText );
Button buttonAdd = (Button) bView.findViewById( R.id.buttonAdd );
Button buttonBack = (Button) bView.findViewById( R.id.buttonBack );
taskBuilder.setView( bView );
final AlertDialog dialog = taskBuilder.create();
dialog.show();
buttonAdd.setOnClickListener( new View.OnClickListener() {
@Override
public void onClick(View v) {
if (!bTaskName.getText().toString().isEmpty()) {
taskName = bTaskName.getText().toString();
taskTag = (String) spinner.getSelectedItem();
dialog.dismiss();
System.out.println("Das ist der Tag: "+ taskTag);
newTask( taskName, taskTag );
} else {
(...)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate( savedInstanceState );
setContentView( R.layout.dialog_taskname );
spinner = (Spinner) findViewById( R.id.spinner_WT );
adapter = ArrayAdapter.createFromResource( this, R.array.array_wochentage, android.R.layout.simple_spinner_item );
adapter.setDropDownViewResource( android.R.layout.simple_spinner_dropdown_item );
spinner.setAdapter( adapter );
spinner.setOnItemSelectedListener( new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
Object item = spinner.getItemAtPosition(position);
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
} );
setContentView( R.layout.activity_main );
(...)
Instead of this line: 代替此行:
Object item = spinner.getItemAtPosition(position);
Try using this one: 尝试使用这个:
Object item = parent.getItemAtPosition(position)
Also, did you add below lines in your code? 另外,您是否在代码中添加了以下几行?
Spinner spinner = (Spinner) findViewById(R.id.spinner);
spinner.setOnItemSelectedListener(this);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.