相关疑难解决方法(0)

未调用ListFragment OnListItemClick

我有一个扩展ListFragment的类,它会覆盖OnListItemClick方法.我也在另一个ListFragment中以相同的方式执行此操作(并调用该方法).我想知道为什么当我点击列表项时不会调用该方法?

这是代码:

package org.doraz.fdboard.activity;

import java.sql.SQLException;
import java.util.Collection;

import org.doraz.fdboard.FantasyDraftBoardApplication;
import org.doraz.fdboard.R;
import org.doraz.fdboard.activity.DraftBoardActivity.PlayerDetailsActivity;
import org.doraz.fdboard.domain.FantasyLeague;
import org.doraz.fdboard.domain.FantasyTeam;
import org.doraz.fdboard.domain.Player;
import org.doraz.fdboard.domain.Position;
import org.doraz.fdboard.repository.FantasyDraftBoardRepository;
import org.doraz.fdboard.view.PlayerAdapter;
import org.doraz.fdboard.view.PlayerCursorAdapter;

import android.app.FragmentTransaction;
import android.app.ListFragment;
import android.app.ProgressDialog;
import android.content.Intent;
import android.database.Cursor;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Adapter;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListView;

public class ListPlayersFragment extends ListFragment implements OnItemClickListener {

    private final static String TAG = "ListPlayersFragment";

    private boolean mDualPane;  
    private int curSelectedPlayerPosition = 0;
    private PlayerCursorAdapter playerAdapter; …
Run Code Online (Sandbox Code Playgroud)

android listview android-listview

32
推荐指数
3
解决办法
3万
查看次数

如何在ListFragment中触发onListItemClick

在我的应用程序的平板电脑布局中,我有三个ListFragments和一个常规Fragment,我们称之为Make,Model,Size和Details.最初填充Make列表,然后根据Make选择,填充Model列表; 选择模型时,将填充"大小"列表; 选择"大小"时,将显示"详细信息".这些事件中的每一个(列表项选择)都是通过onListItemClick处理程序处理的.

在启动时,我想填充Make列表,选择列表中的第一个Make并让它通过onListItemClick处理程序来填充Model列表(依此类推,以便填充所有列表并显示详细信息 - 这也应该是在任何列表中进行任何选择时的行为 - 选择下一个列表中的第一个项目,直到我们显示详细信息).请注意,我可以控制DB,对于每个Make,总会有至少一个Model,每个Make/Model至少有一个Size,每个Make/Model/Size只有一个Detail.

所以,我想选择列表中的第一项并让它触发onListItemClick处理程序.我已经尝试了以下(使用适当的边界检查等),但它不起作用.

getListView().setItemChecked(0, true);
Run Code Online (Sandbox Code Playgroud)

对"开箱即用"ListFragment的唯一更改是将CacheColorHint设置为这样

getListView().setCacheColorHint(R.color.GhostWhite);
Run Code Online (Sandbox Code Playgroud)

其中GhostWhite在styles.xml中设置为

<color name="GhostWhite">#88FFFFFF</color>
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

提前致谢.

android listview android-fragments

6
推荐指数
1
解决办法
6667
查看次数

创建自定义简单光标适配器

我想创建一个非常简单的游标自定义游标适配器,以方便在点击时更改行项目的颜色.使用以下代码

private static int save = -1;

public void onListItemClick(ListView parent, View v, int position, long id) { 

    parent.getChildAt(position).setBackgroundColor(Color.BLUE);

    if (save != -1 && save != position){
        parent.getChildAt(save).setBackgroundColor(Color.BLACK);
    }

    save = position;                

}
Run Code Online (Sandbox Code Playgroud)

我从这个线程获得了代码/sf/answers/535491631/

我会使用一个简单的游标适配器并将代码放在onClick中,但由于ListFragment中的默认列表重用了视图,因此滚动多个视图时会突出显示.谈到IRC,有人建议我创建一个自定义游标适配器.但是,我似乎无法找到如何执行此操作的最佳实践,以及上述代码段所适用的位置.可以非常感谢帮助.

public class AreaCursorAdapter extends CursorAdapter {
    private Context context;


    public AreaCursorAdapter(Context context, Cursor c) {
        super(context, c);
        // TODO Auto-generated constructor stub
    }

    @Override
public void bindView(View view, Context context, Cursor cursor) {
    TextView list_item = (TextView)view.findViewById(android.R.id.text1);
    list_item.setText(cursor.getString(cursor.getColumnIndex(INDICATOR_NAME)));

}

@Override
public View newView(Context context, …
Run Code Online (Sandbox Code Playgroud)

android android-listview simplecursoradapter android-listfragment android-cursoradapter

5
推荐指数
1
解决办法
1万
查看次数