2013-01-16 49 views
0

感到困惑,为什么onClickListener没有响应。是因为按钮设置在一个布局中,而是绑定到另一个布局?任何帮助,将不胜感激。ListFragment中的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); 

} 

} 

就像我现在这样,日志甚至没有显示出来。

+0

请发布您的'activity_activity_row.xml'布局。 – Sam

回答

3

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

而不是返回新充气布局(和失去以前 Button
//... 
return view; 

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

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

+0

就是这样。只是想在我走向另一条道路之前确定。我会尽快接受。谢谢您的帮助。 – sam

+0

@sam根据你的代码判断......你是否试图为列表行中的'Buttons'设置一个'OnClickListener'?如果是的话,不要这样做,你需要制作一个自定义的适配器,并在'getView'方法(或'bindView' for Cursor based adapters)方法中设置'OnClickListener'。 – Luksprog

+0

这就是我想要做的。我会去做。再次感谢。 – sam