2016-01-28 5 views
0

Я пытался много вещь, но до сих пор не знаю, что происходит, я хочу ввода URL-адреса адреса в EditText, а затем saveit в строку или установить этот текст TextView после кнопки пользователь мышиAndroid EditText бросает NullPointerException

затем я получить

Halp

java.lang.IllegalStateException: не удалось выполнить метод андроида: OnClick на android.support. v7.app.AppCompatViewInflater $ DeclaredOnClickListener.onClick

Вызванный: java.lang.reflect.InvocationTargetException

причиненном: java.lang.NullPointerException: попытка вызвать виртуальный метод «android.text.Editable андроида. widget.EditText.getText() по ссылке на нулевой объект

Button button1; 
    TextView txtspr; 
    EditText urlInputEditText; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
     setSupportActionBar(toolbar); 

     FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); 
     fab.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG) 
         .setAction("Action", null).show(); 
       button1=(Button) findViewById(R.id.button); 

       txtspr=(TextView)findViewById(R.id.textSprawdzajacy); 
       urlInputEditText=(EditText) findViewById(R.id.editText); 

       //(EditText)findViewById(R.id.editText); 

      } 
     }); 
    } 

    public void onClick(View view) { 

      String n=urlInputEditText.getText().toString(); 
      txtspr.setText(n); 


     //new DownloadAsync(this,n).execute(); 

    } 
+0

мы можем иметь ресурсы, где вы установили текст для 'editText' в коде? – nullpointer

ответ

0

Причина: вы нажав на button1 но это еще не инициализирован (начальный номер был внутри FloatingActionButton)

Решение попробовать этот код:

Button button1; 
TextView txtspr; 
EditText urlInputEditText; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
    setSupportActionBar(toolbar); 
    button1=(Button) findViewById(R.id.button); 

      txtspr=(TextView)findViewById(R.id.textSprawdzajacy); 
      urlInputEditText=(EditText) findViewById(R.id.editText); 
    FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); 
    fab.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG) 
        .setAction("Action", null).show(); 
     } 
    }); 
} 

public void onClick(View view) { 
     String n=urlInputEditText.getText().toString(); 
     txtspr.setText(n); 
} 
+0

ok i'm fkn blind: D я заметил, что: P мне нужен перерыв: D thx –

0

У вас не хватает, чтобы присвоить любое значение в urlInputEditText из ваших ресурсов.

Поскольку этот раздел будет называться только onClick() в соответствии с вашим кодом:

 fab.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       .... 
       button1=(Button) findViewById(R.id.button); 
     urlInputEditText=(EditText) findViewById(R.id.editText); 

Перемещение присваивание из щелчку где-то в onCreate()

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