2013-07-19 48 views
-1

你好我儘量把我的Java代碼微調,但它表明在else if語句錯誤:Android的微調錯誤

private EditText textName; 
    private EditText textContent; 
    private Spinner CategorySpinner; 


    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_text); 



     configureButton1(); 
     configureButton2(); 

     textName = (EditText) findViewById(R.id.editTextName); 
     textContent = (EditText) findViewById(R.id.editContent); 
     CategorySpinner = (Spinner) findViewById(R.id.editCategorySpinner); 



    } 

    private void configureButton1() { 
     Button del = (Button)findViewById(R.id.btNewText); 
     del.setOnClickListener(new OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       Intent myIntent = new Intent(v.getContext(), StartActivity.class); 
       v.getContext().startActivity(myIntent); 
      } 
     }); 
    } 

    private void configureButton2() { 
     Button save = (Button) findViewById(R.id.btSave); 

     save.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       if (textName.getText().length() == 0) { 
        textName.requestFocus(); 
        return; 
       } else if (textContent.getText().length() == 0) { 
        textContent.requestFocus(); 
        return; 
       } else if (CategorySpinner.**getText**().length() == 0) { 
        CategorySpinner.requestFocus(); 
        return; 
       } else { 
        //next Step: get the mood 
        Intent myIntent = new Intent(v.getContext(), Activity2.class); 
       myIntent.putExtra("textName", textName.getText().toString()); 
       myIntent.putExtra("textContent", textContent.getText().toString()); 
       myIntent.putExtra("CategorySpinner", CategorySpinner.**getText()**.toString()); 
       v.getContext().startActivity(myIntent); 
      } 
       } 
      } 
     }); 
     } 

它顯示了CategorySpinner.getText()的錯誤。我希望你能幫助我。 我嘗試了很多,但未找到解決方案。

+0

-1'CategorySpinner'在這一點上是空的......在自己的代碼中發佈NPE是SO是懶惰 – Selvin

回答

0
private void initSpinnerList() { 
    spinner = (Spinner) findViewById(R.id.spinner); 
    spinner.setOnItemSelectedListener(listner); 
    categories = new ArrayList<String>(); 
    categories.add("S"); 
    categories.add("T"); 
    categories.add("U"); 
    categories.add("V"); 
    categories.add("W"); 
    categories.add("X"); 
    categories.add("Y"); 
    categories.add("Z"); 
    ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this, 
      android.R.layout.simple_spinner_item, categories); 
    dataAdapter 
      .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    spinner.setAdapter(dataAdapter); 
} 

private OnItemSelectedListener listner = new OnItemSelectedListener() { 
    /* 
    * (non-Javadoc) 
    * 
    * @see 
    * android.widget.AdapterView.OnItemSelectedListener#onItemSelected(
    * android .widget.AdapterView, android.view.View, int, long) 
    */ 
    @Override 
    public void onItemSelected(AdapterView<?> parent, View view, 
      int position, long id) { 
     String item = parent.getItemAtPosition(position).toString(); 
     /// on item selected data 
    } 

    /* 
    * (non-Javadoc) 
    * 
    * @see 
    * android.widget.AdapterView.OnItemSelectedListener#onNothingSelected 
    * (android .widget.AdapterView) 
    */ 
    @Override 
    public void onNothingSelected(AdapterView<?> parent) { 

    } 
}; 

@Override 
     public void onClick(View v) { 
      if (spinner != null && categories != null) { 
       Log.v("Selected Spinner Item ", 
         categories.get(spinner.getSelectedItemPosition())); 
      } 
     } 
0

您還沒有爲微調器提供適配器。請使用以下代碼適配器:

Spinner spinner = new Spinner(this); 
ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_dropdown_item, spinnerArray); 
spinner.setAdapter(spinnerArrayAdapter); 

如果u想要的東西的文本比下面的代碼使用:

String value = spinnerArray[spinner.getSelectedItemPosition()]; 

將在微調返回所選項目的價值。默認爲0.