2017-08-23 11 views
0

私はスピナーオブジェクトからアイテムを取得するために何時間も試しましたが、私は常にスピナーアレイから最初のアイテムを取得します。 配列はstring.xmlで定義されています。 このような間違いは、さまざまなコンテキストによって引き起こされますか? 私はgetSelectedItemコマンドを使用すると、私は代わりに、この行のAndroid Studio - スピナー - スピナーアイテムを取得できない

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); 
        (...) 

答えて

0

にNullPointerリファレンスを取得:

Object item = spinner.getItemAtPosition(position); 

、このいずれかを使用してみてください:

Object item = parent.getItemAtPosition(position) 

また、あなたが追加しましたあなたのコードの下の行?

Spinner spinner = (Spinner) findViewById(R.id.spinner); 
spinner.setOnItemSelectedListener(this); 
+0

何が起こっていない、私はのSystem.outを追加しましたが、それは、この方法のように思える – LimoFlasch

+0

は、なぜあなたは二回setContenView(...)を呼び出しているアクティブ化されたことがないのですか?異なるパラメータで? – Danger

+0

これは、スピナーのnullオブジェクトの参照を防ぐために私が見つけた唯一の方法です。スピナーはアリーのダイアログで使用されます – LimoFlasch

関連する問題