2014-11-16 2 views
-1

Я пытаюсь вставить значения в столбец с именем «id_usuario», поэтому на моей странице входа я получил метод, который вызывается в моей кнопке как событие onclick, вот код:NullPointerException при получении значений из EditTexts

public void logar(View view) { 
     String login = edtlogin.getText().toString(); 
     String senha = edtlogin.getText().toString(); 

     LoginDTO loginDTO = new LoginDTO(); 

     loginDTO.setUsuario(login); 
     loginDTO.setSenha(senha); 

     new LoadingAsync().execute(); 
    } 

Это код LoginDTO где я геттерирующий в и инкубационных для «Новичка» и «senha»:

public class LoginDTO implements Serializable { 

    /** 
    * 
    */ 
    private static final long serialVersionUID = 1111108194849414002L; 

    private String usuario; 
    private String senha; 

    public String getUsuario() { 
     return usuario; 
    } 

    public void setUsuario(String usuario) { 
     this.usuario = usuario; 
    } 

    public String getSenha() { 
     return senha; 
    } 

    public void setSenha(String senha) { 
     this.senha = senha; 
    } 
} 

для вставки данных в таблицу «transacoes» Я получил это:

public void cadastrarTransacao(View view) { 
     TransacaoDTO transacaoDTO = new TransacaoDTO(); 
     LoginDTO loginDTO = new LoginDTO(); 

     //int idUsuario = Integer.parseInt(activity.getIDUsuario(loginOpenHelper)); 

     transacaoDTO.setDesc(edtDescricao.getText().toString()); 
     transacaoDTO.setData(edtData.getText().toString()); 
     transacaoDTO.setValor(Long.parseLong(edtValor.getText().toString())); 
     transacaoDTO.setIdUsuario(Integer.parseInt(loginOpenHelper.getIDUsuario(loginDTO.getUsuario(), loginDTO.getSenha()))); 

     ValidacaoMock resultado = mockBO.cadastrarOperacao(transacaoDTO); 

     MensagemUtil.addMsg(this, resultado.getMensagem()); 

     Intent i = new Intent(this, MockListActivity.class); 
     startActivity(i); 
     finish(); 
    } 

И для метода "getIDUsuario":

public String getIDUsuario(String usuario, String senha){ 
     SQLiteDatabase db = this.getWritableDatabase(); 

     String id = "id_usuario"; 

     String[] columns = {id}; 
     String[] selectionArgs ={usuario, senha}; 

     Cursor cursor = db.query("usuarios", columns, "nome_usuario=? AND senha=?", selectionArgs, null, null, null); 

     StringBuffer buffer = new StringBuffer(); 
     while(cursor.moveToNext()){ 
      int index0 = cursor.getColumnIndex(id); 
      int idUsuario = cursor.getInt(index0); 
      buffer.append(idUsuario); 
     } 

     return buffer.toString(); 
    } 

Это ошибка:

11-16 14:40:25.624: E/AndroidRuntime(10623): Caused by: java.lang.NullPointerException 
11-16 14:40:25.624: E/AndroidRuntime(10623): at com.br.texapp.MockTransacaoActivity.cadastrarTransacao(MockTransacaoActivity.java:51) 

Строка, которая содержит ошибку заключается в следующем:

transacaoDTO.setIdUsuario(Integer.parseInt(loginOpenHelper.getIDUsuario(loginDTO.getUsuario(), loginDTO.getSenha()))); 
Может

кто-нибудь помочь Я пожалуйста?

+0

Вы инициализируетесь этот loginOpenHelper? –

+0

Как это сделать? Я начинаю прямо сейчас в этом мире Android –

+0

Не знаю, чтобы инициализировать представления или класс –

ответ

1

Я могу предположить, что вы еще не создали объект loginOpenHelper. Держу пари, это бросает NPE.

Что-то вроде

loginOpenHelper = new LoginOpenHelper(); 
+0

общественного класса MockTransacaoActivity расширяет ActionBarActivity { \t EditText edtDescricao = NULL; \t EditText edtData = null; \t EditText edtValor = null; \t \t частный MockBO mockBO; \t частный LoginOpenHelper loginOpenHelper; –

+0

Я создал там как частный –

+0

@MikeOliveira Запишите это также в 'onCreate' после setcontentView' loginOpenHelper = new LoginOpenHelper(); '. Объявление переменной не означает, что вы создали ее объект. –

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