2013-10-02 3 views
0

Я рассмотрю это как можно скорее. Я разрабатываю приложение, которое требует компиляции из текста кнопки. Позвольте мне объяснить это кодовым способом. Если на моей кнопке есть «Этот текст», сделайте это. Я пытаюсь в течение последних двух дней несколько разных вещей, и я нахожусь в тупике, поэтому я спрашиваю. Вот мой код:Кнопки для Android: получение текста назад

XML:

<Button 
       android:id="@+id/bHiddenL1" 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:visibility="invisible" 
       android:layout_margin="18dp" 
       android:text="@string/NotUsed" 
       android:maxLength="10" /> 

Java:

protected void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.newnotebookbutton); 
      initializeNotebookNewSubject(); 


     } 


      public void initializeNotebookNewSubject() { 

       NewTextInput = (EditText) findViewById(R.id.etNewNotebookButtonCreateSubjectButton); 
       OKButton = (Button) findViewById(R.id.bOkButton); 
       Button1L = (Button) findViewById(R.id.bHiddenL1);   
       Button2L = (Button) findViewById(R.id.bHiddenL2);   
       Button3L = (Button) findViewById(R.id.bHiddenL3);   
       Button4L = (Button) findViewById(R.id.bHiddenL4);   
       Button5L = (Button) findViewById(R.id.bHiddenL5);   
       Button1R = (Button) findViewById(R.id.bHiddenR1);   
       Button2R = (Button) findViewById(R.id.bHiddenR2);   
       Button3R = (Button) findViewById(R.id.bHiddenR3);   
       Button4R = (Button) findViewById(R.id.bHiddenR4);   
       Button5R = (Button) findViewById(R.id.bHiddenR5);   

       OKButton.setOnClickListener(this); 

      } 


      @Override 
      public void onClick(View v) { 

       String b1L = Button1L.getText().toString(); 
       String b2L = Button2L.getText().toString(); 
       String b3L = Button3L.getText().toString(); 
       String b4L = Button4L.getText().toString(); 
       String b5L = Button5L.getText().toString(); 
       String b1R = Button1R.getText().toString(); 
       String b2R = Button2R.getText().toString(); 
       String b3R = Button3R.getText().toString(); 
       String b4R = Button4R.getText().toString(); 
       String b5R = Button5R.getText().toString(); 

       if(b1L == "Not Used" && NewTextInput.getText().toString() != null){ 

        NewSubjectBundle.putString("title1L", NewTextInput.getText().toString()); 
        NewSubjectBundle.putInt("int", 1); 
        mIntent.putExtras(NewSubjectBundle); 
        setResult(RESULT_OK, mIntent); 
        finish(); 

Позвольте мне указать, лучше мою проблему. Всякий раз, когда я пытаюсь выполнить «String b1L = Button1L.getText(). ToString();», я получаю сообщение об ошибке в логарифме, указывающем, что указатель Null. Как это должно быть исправлено?

ответ

1

Не сравнивайте содержимое строк с использованием ==.

b1L == "Not Used" 

должен быть

b1L.equals("Not Used") 

или даже лучше

"Not Used".equals(b1L) 

How do I compare strings in Java ?

+0

Хорошо, спасибо, я этого не знал. В любом случае, это не моя проблема. Дело в том, что всякий раз, когда я пытаюсь сделать «String b1L = Button1L.getText(). ToString();» в лог-кате есть ошибка, указывающая, что содержимое равно null. Любая подсказка? –

0

ZouZou прав. Но в вашем случае еще лучше:

b1L.equals(getResources().getString(R.string.NotUsed)); 
Смежные вопросы