0

ユーザーがリスト メニューで選択した項目をクリックし、選択後に別のページに移動できるようにする方法。この質問がstackoverflowで多く寄せられていることは知っていますが、ほとんどのことを経験しましたが、まだ負けています。ここで助けてくれることを願っています。

例:ユーザーがリストで「a」を選択すると、別のアクティビティに移動しonclick listenerます。このコードにどのように実装しますか?

編集後、私の意図は別の方法で機能しません。
メインにコードを追加しましたが、プログラムを実行してもまだクリックできません

        list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
            // write your start another activity code here
            switch(i){
            case 0:{
                Intent intent1 = new Intent(LeftAndRightActivity.this, DisplayActivity.class);
                startActivity(intent1);
            }
            }
        }
    });

rightlistfragment.xml

public class RightListFragment extends ListFragment {

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    return inflater.inflate(R.layout.rightlist, null);

}

public void onActivityCreated(Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);
    SampleAdapter adapter = new SampleAdapter(getActivity());
    adapter.add(new SampleItem("a"));
    adapter.add(new SampleItem("b"));
    adapter.add(new SampleItem("c"));
    adapter.add(new SampleItem("d"));
    adapter.add(new SampleItem("e"));
    adapter.add(new SampleItem("f"));
    setListAdapter(adapter);

    list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
            // write your start another activity code here
            switch(i){
            case 0:{
                startActivity(new Intent(RightListFragment.this,FragmentBindAcc.class));
            }
            }
        }       

    TextView text1 = (TextView) getView().findViewById(R.id.loginName);

    text1.setText("TEST");
}

private class SampleItem {
    public String tag;
    public int iconRes;
    public SampleItem(String tag) {
        this.tag = tag; 

    }
}

public class SampleAdapter extends ArrayAdapter<SampleItem> {

    public SampleAdapter(Context context) {
        super(context, 0);
    }

    public View getView(int position, View convertView, ViewGroup parent) {
        if (convertView == null) {
            convertView = LayoutInflater.from(getContext()).inflate(R.layout.rightrow, null);
        }
        ImageView icon = (ImageView) convertView.findViewById(R.id.arrow);
        icon.setImageResource(getItem(position).iconRes);
        TextView title = (TextView) convertView.findViewById(R.id.row_title);
        title.setText(getItem(position).tag);


        return convertView;
    }

}
   }

ありがとう

4

6 に答える 6

2

setOnItemClickListenerこれはListView、次のように取得できます。

list.setOnItemClickListener(new OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,long arg3) {
            // TODO Auto-generated method stub
            switch(arg2){
            case 0:{  

                    startActivity(new Intent(getApplicationContext(),ActivityA.class));                     
                }
            break;  
            case 1:{

                    startActivity(new Intent(getApplicationContext(),ActivityB.class));
                                    }   
            break;
            case 2:{  
                ExampleQuestion.topicNo=3;                          
                startActivity(new Intent(getApplicationContext(),ActivityC.class));                     
            }
            break;              
}

には A、B、C が含まれていると考えることができますlistview。ユーザーが A を選択すると、ケース 0、B はケース 2、C はケース 3 になります。

于 2013-10-29T07:17:18.247 に答える
0
// try this way
public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);

        SampleAdapter adapter = new SampleAdapter(getActivity());
        adapter.add(new SampleItem("a"));
        adapter.add(new SampleItem("b"));
        adapter.add(new SampleItem("c"));
        adapter.add(new SampleItem("d"));
        adapter.add(new SampleItem("e"));
        adapter.add(new SampleItem("f"));
        setListAdapter(adapter);
        list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
                // write your start another activity code here
            }
        });
        TextView text1 = (TextView) getView().findViewById(R.id.loginName);

        text1.setText("TEST");
}
于 2013-10-29T07:10:19.440 に答える
0

getView メソッドで onClickListner を指定してみてください

  title.setOnClickListener(new OnClickListener() {

                public void onClick(View v) {
                    Intent i = new Intent(context,anotherActivity.class);
                                      context.startActivity(i);

                        }
                    });
于 2013-10-29T07:10:26.690 に答える
0
getListView().setOnItemClickListener(new AdapterView.OnItemClickListener {
    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id){
        /* your code */
    };
})
于 2013-10-29T07:12:29.423 に答える