【问题标题】:Listview onItemClickListener inside a Fragment片段内的 Listview onItemClickListener
【发布时间】:2014-12-05 12:46:22
【问题描述】:

所以我在这里得到了我的 Fragment,里面有一个 Listview,效果很好。

但我不知道如何在 Fragment 中使用 onItemClickListener。

我可能需要一些帮助将其放入 Fragmentcode。

我已经找到了这个Thread,但我仍然无法使用它

FragmentJanuar.java

import android.content.Context;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ListView;
import android.widget.TextView;

import java.util.ArrayList;


public class FragmentJanuar extends Fragment {

    private ArrayList<meetings> myMeetings = new ArrayList<meetings>();
    private ContactsAdapter adapter;
    private ListView lv;


    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle saveInstanceState){

        View v = inflater.inflate(R.layout.fragment_januar, container, false);
        myMeetings.add(new meetings("Event 1", "01.01.2001", "01:00", "1€", "Ort 1", "Strasse 1", 0, "www.event1url.de", "http://www.maplinkevent1.com"));
        myMeetings.add(new meetings("Event 2", "01.01.2001", "01:00", "1€", "Ort 1", "Strasse 1", 0, "www.event1url.de", "http://www.maplinkevent1.com"));

        lv =(ListView)v.findViewById(R.id.listview_januar);

        adapter = new ContactsAdapter(getActivity(), myMeetings);

        lv.setAdapter(adapter);

        return v;
    }


    private class ContactsAdapter extends BaseAdapter {

        private FragmentActivity activity;
        private LayoutInflater inflater;
        private ArrayList<meetings> data;

        public ContactsAdapter (FragmentActivity a, ArrayList<meetings> d){
            activity = a;
            data = d;
            inflater = (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        }

        @Override
        public int getCount() {
            return data.size();
        }

        @Override
        public meetings getItem(int position) {
            return data.get(position);
        }

        @Override
        public long getItemId(int position) {

            return position;
        }

        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            View v = convertView;
            v = inflater.inflate(R.layout.item_view, null);


            meetings currentMeeting = myMeetings.get(position);

            //Eventname
            TextView Event = (TextView) v.findViewById(R.id.item_txtEvent);
            Event.setText(currentMeeting.getEventname());

            //date
            TextView Date = (TextView) v.findViewById(R.id.item_txtDate);
            Date.setText(currentMeeting.getDate());

            //Time
            TextView Time = (TextView) v.findViewById(R.id.item_txtTime);
            Time.setText("Uhrzeit: " + currentMeeting.getTime() + "Uhr" );

            //Price
            TextView Price = (TextView) v.findViewById(R.id.item_txtPrice);
            Price.setText("Eintritt: "+ currentMeeting.getPrice());

            //LocationOrt
            TextView LocationOrt = (TextView) v.findViewById(R.id.item_txtLocationOrt);
            LocationOrt.setText("Location: " + currentMeeting.getLocationOrt());

            //LocationStrasse
            TextView LocationStrasse = (TextView) v.findViewById(R.id.item_txtLocationStrasse);
            LocationStrasse.setText(currentMeeting.getLocationStrasse());

            //EventUrl
            TextView Eventurl = (TextView) v.findViewById(R.id.item_txtEventurl);
            Eventurl.setText("Url: " + currentMeeting.getEventurl());

            return v;
        }
    }

}

这是我要插入的 onItemClickListener。

        lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> parent, View view,
                                    int position, long id) {
                String myurl = myMeetings.get(position).getMapslink().toString();
                Intent i = new Intent(Intent.ACTION_VIEW);
                i.setData(Uri.parse(myurl));
                startActivity(i);
                return;
            }
        });

【问题讨论】:

  • 你想在列表项上点击监听??
  • 是的,这就是我想要的。

标签: listview android-fragments onitemclicklistener


【解决方案1】:
R.layout.item_view

将 id 赋予根视图,即在顶部层次结构中查看上述布局的视图,然后

public View getView

然后在上述方法中注册一个点击监听

例如。 rootView.setOnCLickListenere(this)

覆盖onClick() activity.startActivity("xyz."abc")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-04
    • 1970-01-01
    相关资源
    最近更新 更多