2017-06-02 13 views
0

私のarraylistの最初の項目を何時間もクリックしようとしましたが、スタックオーバーフロー、チュートリアルに関する多くの質問を読んだことがあります。それらは多くの点で機能しますが、機能しません。このリストビューのArrayListの IDを取る、私はListViewコントロールの最初の項目をクリックする必要があり エスプレッソでArrayListの最初の項目をクリックする方法

clickView(getSearchActivity().hintListView); 

onData(anything()) 
    .onChildView(withId(R.id.hintLayout)) 
    .atPosition(0) 
    .perform(click()); 

onData(allOf(is(instanceOf(String.class)))) 
    .atPosition(0) 
    .perform(click()); 

onData(instanceOf(ArrayList.class)) 
    .atPosition(0) 
    .perform(click()); 

onData(instanceOf(String.class)) 
    .atPosition(0) 
    .perform(click()); 

onData(anything()) 
    .inAdapterView(withId(R.id.hintLayout)) 
    .atPosition(0) 
    .perform(click()); 

onData(anything()) 
    .inAdapterView(allOf(withId(R.id.hintLayout), isCompletelyDisplayed())) 
    .atPosition(0).perform(click()); 

は、hintLayoutです。

問題が分かっているのは誰ですか?それはどこにありますか?

+0

あなたは 'ListView'または' RecyclerView'を使用していますか? –

+0

私はスピナーの項目をクリックする必要がある場合、使用するのに十分だったのListView –

+0

を使用しています: 'onDataハンドラ(INSTANCEOF(String.class)) .atPosition(1).performは(クリック());' 今、私は大きな闘いをしている –

答えて

0

ListViewは、アダプターで満たされている必要があります。

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

lvYourListView = (ListView) findViewById(R.id.lvListview); 
     lvYourListView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
      @Override 
      public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
       ListData data = new ListData(); 

       data = (ListData)parent.getItemAtPosition(position); 

       doSomethingWithData(data); 

      } 
     }); 
:バックアウトあなたはあなたの中にこのような何かに onCreate()方法を必要とする OnClickイベントに関するデータを取得するために

private void setListAdapter(ListDataAdapter adapter){ 
    lvYourListView.setAdapter(adapter); 
} 

:あなたのアダプターが終了した後だけでこのようなあなたのListViewに追加

アダプタのヘルプが必要な場合は、私に知らせてください。私はあなたのコードをもっと見る必要があります。

関連する問題