1

標準の ListView の代わりに PullToRefreshListView を使用しようとしていますが、初心者の私にはうまくいきませんでした。listView はアダプターを使用し、xml 項目ファイルをリストビューに膨張させています。

リストビューを置き換えたとき

 </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を拡張します

public class MainActivity extends Activity implement 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

0

コードをトレースしてみてください

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

insideCustomListアダプタ内の項目を設定した後、 notifyDataSetChanged();<-- これがないと要素は表示されません

于 2013-11-07T16:45:00.293 に答える