1
我無法訪問gridview中的按鈕。我的gridview被放置在使用customAdpater的對話框中。請幫幫我!!! 下面是我的代碼在gridview中的對話框的按鈕gridview中獲取null視圖android
1)在onCreate()方法:
dialog = new Dialog(this);
dialog.setContentView(R.layout.question_pallet);
dialog.setTitle("Question Pallet...");
gridView = (GridView) dialog.findViewById(R.id.grid_view);
gridView.setAdapter(new ImageAdapter(QuestionBankActivity.this,allQuestions));
Button b = (Button) gridView.findViewWithTag("Hi"); //returning null
Button b = (Button) gridView.getChildAt(0); //returning null
2)question_pallet.xml是這樣
<?xml version="1.0" encoding="utf-8"?>
<GridView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/grid_view"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:numColumns="auto_fit"
android:columnWidth="70dp"
android:gravity="center"
android:stretchMode="columnWidth" >
</GridView>
3)ImageAdapter.java我grdview是
public class ImageAdapter extends BaseAdapter {
private Activity mContext;
List<GATEQuesAnswer> allQuestions;
static Button b[] = new Button[65] ;
int next_counter = 1;
private int pos;
// Constructor
public ImageAdapter(Activity c, List<GATEQuesAnswer> allgeteQuestions){
mContext = c;
allQuestions = allgeteQuestions;
}
public ImageAdapter(QuestionBankActivity questionBankActivity) {
mContext = questionBankActivity;
}
@Override
public int getCount() {
return 65;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
Button button;
//if (convertView == null) {
button = new Button(mContext);
button.setText(Integer.toString(pos++));
button.setId(position);
button.setTag("Hi");
//}
//else
//{
//button = (Button) convertView;
//Log.i("mytag", b.length+"");
//}
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
((QuestionBankActivity)mContext).navigate_to_ques(position+1);
}
});
button.setLayoutParams(new GridView.LayoutParams(70, 70));
return button;
}
@Override
public Object getItem(int arg0) {
// TODO Auto-generated method stub
return null;
}
}
我已經嘗試了所有的可能性,如給每個按鈕的獨特id並獲取它使用gridview.findViewById()或getChildAt(索引),但沒有任何工作:( 任何幫助將不勝感激! 在此先感謝!
非常感謝你爲你的快速答覆:)但是它給了我error.I是新至Android請詳細more.Code我不明白的是1)我在getActivity拿到號線5錯誤()沒有被定義,當我用我的上下文對象替換getActivity()時,錯誤消失了!我不知道這是對還是錯。2)什麼是R.layout.row? 3)我沒有在xml上的按鈕,所以我提供什麼應該R.id.ID_of_your _button請幫我在這個問題。 – user2823274
1)它的OK ...你做了一個正確的事情(我通過的代碼是爲碎片設計的),並知道我知道它的活動......所以從來沒有想過2)編輯答案,你可以找到R.layout.row有3)R.id.button1 –
嗨,仍然不工作我認爲我錯了某處可能在onCreate()方法請檢查我的代碼,並給我suggetions .. – user2823274