Как передать строку из намерения во Второе действие - PullRequest
0 голосов
/ 18 января 2019

Я отправил свою строку (из массива) с намерением и показал это в textview, но когда я запускаю программу, она вылетает.

Вот моя основная деятельность

list = (ListView) findViewById(R.id.list);
list.setOnItemClickListener(new AdapterView.OnItemClickListener(){

    @Override
    public void onItemClick(AdapterView<?> arg0, View arg1,int position, long arg3){
         Intent intent =new Intent(getApplicationContext(),LAstActivity.class);
         intent.putExtra("name",notes.get(position));
         startActivity(intent,"name");
    }
});

и secendActivivty

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_last);
    TextView tv=findViewById(R.id.textView5);
    Intent intent = getIntent();
    String data = intent.getStringExtra("name");
    tv.setText(data);
}

1 Ответ

0 голосов
/ 18 января 2019

Вы должны проанализировать контекст действия вместо контекста приложения, и вам не нужно анализировать «name» в startActivity, а во втором действии убедитесь, что getIntent () или getStringExtra () не возвращает ноль, если у вас естьисключение нулевого указателя.Таким образом, код будет таким в первом упражнении:

list = (ListView) findViewById(R.id.list);
list.setOnItemClickListener(new AdapterView.OnItemClickListener(){

    @Override
    public void onItemClick(AdapterView<?> arg0, View arg1,int position, long arg3){
         Intent intent =new Intent(this,LAstActivity.class);
         intent.putExtra("name",notes.get(position));
         startActivity(intent);
    }
});
...