Hellow这是我的第一个问题。 林创建本教程的动态网格 http://www.stealthcopter.com/blog/2010/09/android-creating-a-custom-adapter-for-gridview-buttonadapter/comment-page-1/使用自定义适配器中的动态元素
现在它工作得很好。我的布局由一个GridView组成,在这个GridView下我有一个TextView。
问题是,我想要更改TextView,以便在焦点更改(网格元素)时显示每个ID的不同信息。我试图在ButtonAdapter中使用OnFocusChangeListener,但是当试图获取对textView的引用时,它说findViewById没有实现。
我想知道如何在我的主要活动中做出参考,让我可以处理我的动态网格元素。 我有以下onCreate();
GridView gridview = (GridView) findViewById(R.id.gridview);
gridview.setAdapter(new ButtonAdapter(this));
所以我想从这里处理我的网格元素,任何想法? 谢谢
编辑: 我一直在尝试改变不同的东西,但即时通讯从我的getView方法接收NullPointerException。我无法找到一种方法使其工作,我会apreciate任何帮助球员,这是我的代码:
public View getView(int position, View convertView, ViewGroup parent) {
final Button btn;
if (convertView == null) {
// if it's not recycled, initialize some attributes
btn = new Button(mContext);
btn.setLayoutParams(new GridView.LayoutParams(100, 55));
btn.setPadding(8, 8, 8, 8);
} else {
btn = (Button) convertView;
}
btn.setText(filenames[position]);
// filenames is an array of strings
btn.setTextColor(Color.WHITE);
btn.setId(position);
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
TextView vt = (TextView) btn.findViewById(R.id.textView1);
vt.setText("Button Pressed");
}
});
谢谢。
谢谢@icecreamman,现在我有一个空指针异常,请看看我上面的getView方法。 在此先感谢 – JohnWs
我很高兴我帮助。您能否将我的回答标记为答案(带有绿色复选标记)?谢谢!另外,什么元素为null? btn或TextView,还是别的? – icecreamman
再次感谢。问题是,btn正在接收NullPointerException,如果你看上面的代码,你会发现有一个OnClickListener,里面有getView()返回的值,这是btn。所以当我使用btn来获取我的textView的引用时,它会导致错误。 我只想知道如何引用gridView的单个元素,例如,如果我想在用户单击按钮1或按钮2时发生某些事情。我该怎么做?我希望你能指点我正确的方向 再次谢谢你! – JohnWs