2017-05-16 10 views
0

どのリストビューアイテムが選択されたかに基づいて、アプリケーションの次のアクティビティに情報を渡そうとしています。ただし、カスタムボタン(id:button_go)をクリックするとstartActivityが呼び出されます。カスタムリストビューで選択されたアイテムに基づいて、次のアクティビティに情報を渡す方法

私は、ビューのアイテムが選択されたリストに基づいて情報を渡すための一般的な方法は、次のコードをあると信じて:

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> adapter, View view, int position, long id){ 
      Intent intent = new Intent(getActivity(), Detail_Activity.class); 

     } 
    }); 

しかし、それがボタンに接続されているので、これは私のクラスでは動作しません。私のリスト内の私のコードViewフラグメントが続きます。

class CustomAdapter extends BaseAdapter { 

    @Override 
    public int getCount() { 
     return testArray.length; 
    } 

    @Override 
    public Object getItem(int i) { 
     return null; 
    } 

    @Override 
    public long getItemId(int i) { 
     return 0; 
    } 

    @Override 
    public View getView(int i, View view, ViewGroup viewGroup) { 
     view = getActivity().getLayoutInflater().inflate(R.layout.customlayout,null); 


     Button button_go = (Button)view.findViewById(R.id.button_go); 


     button_go.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 
      } 
       // Perform action on click 
       //startActivity(new Intent(getActivity(), Detail_Activity.class)); 
      } 
     }); 


     return view; 
    } 
} 

}

+0

エラーは何ですか? –

+1

[http://stackoverflow.com/questions/18199674/passing-data-between-activities-from-listview-to-another-activity]の可能な複製 –

答えて

1

あなたのボタンのonClickListenerであなたのIntentを作成し、位置(または任意の他のリスト項目の特定情報)を入れ、余分なようIntentにクリックされたボタンの。

button_go.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 
      Intent intent = new Intent(getActivity(), Detail_Activity.class)); 
      intent.putExtra("position", i); 
      startActivity(intent); 
     } 
    }); 

は、その後、ボタンの位置は、新たな活動のonCreate()でクリックされ得る:

Integer buttonPos = getIntent().getIntExtra("position"); 
0

私はあなたの質問が何であるかについてはよく分かりません。 ボタンをクリックして何が起こっているのか教えてください。 ログを追加して、onClickが呼び出されていることを確認してください。

問題は、新しいアクティビティで情報を渡す方法やアクティビティが開始していないことがわからないことです。

FYIでは、getItem(position)を呼び出してこの位置のアイテムを取得できます。

関連する問題