2013-10-03 6 views
0

У меня есть эта ошибка nullpointerexception, когда я делаю getText().toString() из EditTex:SherlockFragmentActivity EditText GetText() NullPointerException

public class SendMessActivity extends SherlockFragmentActivity {  
    private EditText tEmail; 
    private Button sendButton; 
@Override 
protected void onCreate(final Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.send_mess_layout); 
    tEmail = (EditText)findViewById(R.id.editEmailTo); 
    sendButton = (Button)findViewById(R.id.btn_sendmess); 
    endButton.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      //String textEmail = tEmail.getText().toString(); //nullpointerexception 
      Editable textEmail1Editable = tEmail.getText(); //nullpointerexception 
      String textEmail = textEmail1Editable.toString() 
      Log.d(DEBUGTAG, "SENDING START:::::::: " + textEmail); 
     } 
    }); 

}} 

Пожалуйста, скажите мне, как сделать это

UPDATE Q

Дэвид, спасибо, за вашу догадку, проблема была действительно в моих запутанных макетах У меня было все 4 лева els вложенности LinearLayouts. После того, как я покинул упрощенную схему и только 2 уровня у меня есть, все начали работать

+0

Можете ли вы отправить файл макета send_mess_layout.xml. Я ожидаю, что проблема там будет. – David

+0

Возможно, вы правы, мой макет изогнутый –

+0

Рад, что я мог помочь! – David

ответ

0

Вам нужно позвонить setContentView(your_layout.xml), чтобы он знал, какой макет использовать. Без настройки макета все ваши вызовы на findViewById(...), которые пытаются найти точки в макете, вернут нуль.

public class SendMessActivity extends SherlockFragmentActivity {  
    private EditText tEmail; 
    private Button sendButton; 
@Override 
protected void onCreate(final Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 


    setContentView(your_layout.xml); //set your activity layout here. 


    tEmail = (EditText)findViewById(R.id.editEmailTo); 
    sendButton = (Button)findViewById(R.id.btn_sendmess); 
    endButton.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      String textEmail = tEmail.getText().toString(); //nullpointerexception 
      Log.d(DEBUGTAG, "SENDING START:::::::: " + textEmail); 
     } 
    }); 

}} 
+0

Извините, у меня уже есть '' 'setContentView (R.layout.send_mess_layout);' '', но у меня такая же ошибка –

+0

'tEmail = (EditText) findViewById (R.id.editEmailTo);' должен быть виновником , Пройдите в своем отладчике и посмотрите, является ли оно нулевым. –

+0

Да, вы правы, проблема была связана с тем, что слишком много вложенных макетов. После того, как я упростил интерфейс UI, он работал Ok! –

0

Если у вас нет назначенного текста, то я бы предположить, что поиск EditText текста будет нулевой входом и вы пытаетесь сделать строку этой записи нуля.

+0

См. Updaate '' 'Редактируемый textEmail1Editable = textEmail.getText(); // nullpointerexception''' –

Смежные вопросы