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