我的活动有一个ListView,它有一个自定义的ArrayAdapter。 在我的ArrayAdapter上,我有一个图像,一堆文本框和一个按钮。
在适配器的getView上,我得到了我的按钮并设置了setOnClickListener。从点击监听器我可以得到被点击项目的索引。
现在我的问题是我想将这些信息传播到我的主要活动,我想要处理我的按钮点击。 我可以将索引信息保存在静态var中,但我仍然不知道如何在我的活动中触发事件。
我该怎么做?
我对Android新手已经6天了,谢谢 伊基
代码:
我的活动:
public class MyClass extends Activity{
...
public void onCreate(Bundle savedInstanceState) {
...
myListView = (ListView)findViewById(R.id.lvxml);
myList = new MyCustomArrayAdapter(this, myAnotherClassObject);
myListView .setAdapter(myList);
...
}
}
现在在我的适配器
public class MyCustomArrayAdapter extends ArrayAdapter<myAnotherClass> {
...
....
@Override
public View getView(int position, View convertView, ViewGroup parent) {
Button b = (Button)convertView.findViewById(R.id.myButtonInListView);
b.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
doStuff;
}
});
}
}
我需要以某种方式从我的主要活动中触发按钮,但不会失去阅读列表视图中单击的索引的可能性。
答案 0 :(得分:0)
所以我以某种方式解决了它。它可能不是这样做的方法,但它有效。
我将活动保存在静态var。
中Button b = (Button)convertView.findViewById(R.id.myButtonInListView);
b.setTag(position);
b.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
int i = (Integer) v.getTag();
myStaticVarRep.myActivity.myMethod(i);
}
});
答案 1 :(得分:0)
索引是position
变量。
我必须是最终在这里使用它
public View getView(final int position,View convertView,ViewGroup parent)
您可以通过监听器界面通知您的Activity
。
答案 2 :(得分:-1)
我假设您的代码看起来有点像这样。
public class <Your Class> ... implements OnClickListener{
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
.
.
.
button.setOnClickListener(this);
}
}
要处理按钮点击事件,您需要一个看起来像这样的onClick方法。
public void onClick(View v){
<Handle your button click in here>
}
每当您单击按钮时,它都会调用onClick方法。这是你操纵静态var,触发其他方法等的地方。我希望这有帮助。