2015-10-26 4 views
-2

Я пытаюсь открыть другое действие по щелчку элемента списка в виде списка и отобразить данные элемента списка кликов в новом действии. Но я могу получить данные элемента списка onclick, но когда я начинаю новую активность с использованием метода startAcitvity (намерения), открывается только пустое действие, а при отладке я получаю информацию о том, что startActivity() не определено. Пожалуйста, помогите мне решить эту проблему. Мой код здесь:Как я могу перейти к другому действию onclick элемента списка listView

public class MainActivity extends AppCompatActivity { 
ListView lvDetail; 
Intent intent; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    lvDetail = (ListView) findViewById(R.id.list); 
    new ProgressTask(MainActivity.this).execute(); 

    lvDetail.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
      try { 
       intent = new Intent(MainActivity.this, DataDisplayer.class); 
       Employee e = (Employee) parent.getItemAtPosition(position); 
       ArrayList<String> el = new ArrayList<String>(); 
       el.add(String.valueOf(e.getId())); 
       el.add(e.getName()); 
       el.add(String.valueOf(e.getAge())); 
       el.add(String.valueOf(e.getSalary())); 
       Bundle bundle = new Bundle(); 
       bundle.putStringArrayList("emp", el); 
       intent.putExtras(bundle); 
       //intent.putStringArrayListExtra("emp", el); 
       startActivityForResult(intent, 187); 
      } catch (Exception er) { 
       er.printStackTrace(); 
      } 
     } 
    }); 
+0

проверить [этот ответ] (http://stackoverflow.com/a/32133974/2553431) – Mohit

+0

Я не нашел это полезным –

+0

Вы упомянули класс datadisplayer внутри файла манифеста? '' – Droidwala

ответ

0

Вы во внутреннем классе, так что вы должны назвать startactivity, как показано ниже:

MainActivity.this.startActivityforresult(intent,reqcode); 
+0

Извините, это не так. startActivityForResult не переопределяется AdapterView.OnItemClickListener, поэтому вы можете называть его, как в коде описания темы. – Christopher

+0

Существует еще один способ сделать это также переопределить метод onListItemClick() и начать свою деятельность с этого метода вместо этого интерфейса OnclickListner(), если позже не будет работать :) – srinivas

1

На самом деле я поймал вопрос мой сам на самом деле этот вопрос находится в классе DataDisplayer , Так что это была единственная проблема. В MainActivity нет проблем. я использовал метод OnCreate следующим образом:

общественного недействительными OnCreate (Пачка savedInstanceState, PersistableBundle persistentState) { super.onCreate (savedInstanceState, persistentState); }

+0

Хотя я должен использовать следующий onCreate вместо выше метод: –

+0

protected void onCreate (Bundle savedInstanceState) { super.onCreate (savedInstanceState); setContentView (R.layout.activity_main); } –

+0

protected void onCreate (Bundle savedInstanceState) {super.onCreate (savedInstanceState); setContentView (R.layout.activity_main); } - это метод жизненного цикла Android Activity, в этом методе будет создан ваш взгляд. Вот почему этот метод полезен для этого. @ Анушка Харе –

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