【问题标题】:onClickListener in ListFragment not respondingListFragment 中的 onClickListener 没有响应
【发布时间】:2013-01-16 20:32:04
【问题描述】:

对 onClickListener 没有响应的原因感到困惑。是因为按钮设置在一个布局中,但绑定到另一个布局?任何帮助,将不胜感激。

public class ActivityList extends ListFragment

{
private ActivityDbAdapter mDbHelper;
private Long mRowId=Long.valueOf(1);
private Activity mContext; //changed to private
AlertDialog activity_relationship;



@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
    Bundle savedInstanceState) 
{
super.onCreate(savedInstanceState);
mContext=this.getActivity();
mDbHelper=new ActivityDbAdapter(mContext);
mDbHelper.open();
Cursor activity = mDbHelper.fetchAll(mRowId);
View view = (View) inflater.inflate(R.layout.activity_activity_row, container,false);
Button relationship = (Button) view.findViewById(R.id.show_relationship_activities);




String[] from = new String[]{ActivityDbAdapter.COLUMN_NAME_VALUE1_RELATIONSHIP , //from and too.
        ActivityDbAdapter.COLUMN_NAME_VALUE1_EDUCATION,
        ActivityDbAdapter.COLUMN_NAME_VALUE1_RECREATION,
        ActivityDbAdapter.COLUMN_NAME_VALUE1_MIND, ActivityDbAdapter.COLUMN_NAME_VALUE1_DAILY};


int[] to = new int[]{R.id.relationship_value,R.id.education_value, R.id.recreation_value,
        R.id.mind_value, R.id.daily_value};

SimpleCursorAdapter contacts = 
    new SimpleCursorAdapter(mContext, R.layout.activity_activity_row, activity, from, to); //my cursor adapter 


relationship.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View arg) {

        Log.e("Why","Are you not working?");

        Cursor activity = mDbHelper.fetchAll(mRowId);

     String mactivity_relationship=activity.getString(                                              //define all of the Strings. Gahh!!
            activity.getColumnIndexOrThrow(ActivityDbAdapter.COLUMN_NAME_ACTIVITY1_RELATIONSHIP));

        AlertDialog activity_relationship=new AlertDialog.Builder(mContext).create();
        activity_relationship.setTitle("Relationship Activities");
        String activities=(mactivity_relationship+"\n"+mactivity_relationship2+"\n"+mactivity_relationship3+
                "\n"+mactivity_relationship4+"\n"+mactivity_relationship5);
        activity_relationship.setMessage(activities);
        activity_relationship.show();



    }

});

setListAdapter(contacts);




return inflater.inflate(R.layout.activity_activity_list, container, false);

}

}

正如我现在所拥有的那样,日志甚至没有显示出来。

【问题讨论】:

  • 请发布您的activity_activity_row.xml 布局。

标签: android android-listview android-listfragment


【解决方案1】:

您可能希望在onCreateView 中返回您实际创建的视图(并用于获取Button):

//...
return view;

而不是返回一个新膨胀的布局(并丢失以前的Button):

return inflater.inflate(R.layout.activity_activity_list, container, false);

或者将view 添加到您膨胀并返回的R.layout.activity_activity_list 文件的视图中。

【讨论】:

  • 认为就是这样。只是想在我走另一条路之前确定一下。我会尽快接受。感谢您的帮助。
  • @sam 从您的代码判断...您是否尝试为列表行中的Buttons 设置OnClickListener?如果是,请不要这样做,您需要制作一个自定义适配器并在getView 方法中设置OnClickListener(或bindView 用于基于游标的适配器)方法。
  • 这就是我想要做的。我会去做。再次感谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-04
  • 1970-01-01
  • 2015-10-18
相关资源
最近更新 更多