1

我正在尝试使用 PullToRefreshListView 而不是我的标准 ListView 但是,它对我作为初学者不起作用,listView 正在使用适配器并将 xml 项目文件膨胀到 listview 中,

当我用我的列表视图替换

 </com.handmark.pulltorefresh.library.PullToRefreshListView>

列表视图变空,没有加载任何项目

  • onItemClickListener()

当我将列表视图从 ListView 替换为 PullToRefreshListView 时,我没有得到 getItemAtPosition 选项,

那么如果我无法获得位置,我该如何添加 onItemClickListener() 呢?

  • list_fragment.xml

    <?xml version="1.0" encoding="utf-8"?>
        <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:orientation="vertical" >
    
           <com.handmark.pulltorefresh.library.PullToRefreshListView
                android:id="@+id/CarsList"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent" />
    
        </LinearLayout>
    
    • 我的 Activity.xml 扩展了 Activity

公共类 MainActivity 扩展 Activity 实现 AsyncCallBack {

PullToRefreshListView           myList;
CustomList                      cl;

....

@Override
protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    myList = (PullToRefreshListView) findViewById(R.id.CarsList);
    ...

这是代码的一部分...... getApiJsonArray 是一个监听器,在 onPostExecute() 上被执行

@Override
public JSONArray getApiJsonArray(JSONArray results) {
    if (dialog != null) {
        dialog.dismiss();
    }
    ArrayList<CarsItems> carsItems;
    try {
        carsItems = getCarsList(results);
        cl = new CustomList(this, carsItems);
        myList.setAdapter(cl);
        myList.setOnItemClickListener(new OnItemClickListener() {
4

2 回答 2

2

问题出在尺寸上,fill_parent 是问题,我检查并成功了

默认情况下,当您将 pulltorefresh 代码复制并粘贴到您的项目中时,您会得到:

<com.markupartist.android.widget.PullToRefreshListView
     android:id="@+id/android:list"
     android:layout_height="fill_parent"
     android:layout_width="fill_parent"
/>

我犹豫要不要在stackoverflow上问别人,因为我对导入它和更新支持版本感到沮丧.....等等

但是,当您将代码直接复制到项目中时,您会得到一个空白列表或根本没有列表

只需将高度和宽度更改为 match_parent 之类的其他值,对于像我这样的初学者来说,这应该是一个直截了当的答案。

如果您在列表中找不到 setOnItemClickListener() 方法的 getItemAtPosition() 时遇到问题,请尝试在该方法中调用它(setOnItemClickListener())

像那样

@Override
public void onItemClick(AdapterView<?> a, View v, int position, long id) {
        Object item = a.getItemAtPosition(position);
        ..

希望这对像我这样的初学者有帮助!:)

于 2013-11-08T18:33:20.150 回答
0

尝试跟踪您的代码

Log.i("MyApp","Results = "+results.toString());
carsItems = getCarsList(results);

CustomList您设置适配器内的项目后,在里面添加 notifyDataSetChanged();<-- 没有这个,不会出现任何元素

于 2013-11-07T16:45:00.293 回答