【问题标题】:Get Item from Listview in Fragment从片段中的列表视图获取项目
【发布时间】:2015-08-11 03:40:24
【问题描述】:

我的片段中有列表视图,我试图在我的 onclick 事件中从我的列表视图中获取项目。但我收到错误提示我宣布我的名单为最终名单。当我尝试将我的列表声明为最终列表时。我收到另一个错误“不兼容...”。

这是我的代码

public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    View rootView = inflater.inflate(R.layout.announcement_fragment, container, false);
    if (android.os.Build.VERSION.SDK_INT > 9) {
        StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
        StrictMode.setThreadPolicy(policy);
    }
    ArrayList<Announcement> listAnnouncement = GetlistAnnouncement();
    ListView lv = (ListView)rootView.findViewById(R.id.list_announcement);
    lv.setAdapter(new AnnouncementAdapter(listAnnouncement, getActivity()));
    lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
            Announcement item =  lv.getItemAtPosition(i);
        }
    });
    return rootView;
}

我在这一行有错误

Announcement item =  lv.getItemAtPosition(i);

答案: 改变

Announcement item =  lv.getItemAtPosition(i);

Announcement item =  listAnnouncement.get(i);

Announcement item =  (Announcement)adapterView.getItemAtPosition(i);

【问题讨论】:

    标签: android android-fragments android-listview


    【解决方案1】:

    但我收到错误提示我将列表声明为最终列表

    你的 lv 必须是 final 的,因为它用于匿名内部类。

    Cannot refer to a non-final variable inside an inner class defined in a different method

    我收到另一个错误“不兼容...”。

    无需使用 lv 或 make final。改变这个

    Announcement item =  lv.getItemAtPosition(i);
    

    Announcement item =  (Announcement)adapterView.getItemAtPosition(i);
    

    getItemAtPosition 返回一个需要强制转换的对象

    文档:

    public Object getItemAtPosition (int position)
    
    Added in API level 1
    Gets the data associated with the specified position in the list.
    
    Parameters
    position    Which data to get
    Returns
    The data associated with the specified position in the list
    

    【讨论】:

    • 哦,谢谢,其实我刚刚自己解决了我的问题。但是谢谢你的回答。我会投票:D
    猜你喜欢
    • 1970-01-01
    • 2019-06-06
    • 2015-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-16
    • 1970-01-01
    相关资源
    最近更新 更多