2013-01-16 48 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