Java 从CustomArray适配器调用ActivityResult
我的ListView有一个自定义ArrayAdapter类,下面是代码Java 从CustomArray适配器调用ActivityResult,java,android,eclipse,Java,Android,Eclipse,我的ListView有一个自定义ArrayAdapter类,下面是代码 public class CustomArrayAdapterForProduct extends ArrayAdapter<ProductClass> { private final Activity context; public final ArrayList<ProductClass> products; private static final int PICK_C
public class CustomArrayAdapterForProduct extends ArrayAdapter<ProductClass>
{
private final Activity context;
public final ArrayList<ProductClass> products;
private static final int PICK_CONTACT = 1;
public CustomArrayAdapterForProduct(Activity context, ArrayList<ProductClass> products)
{
super(context, R.layout.product, products);
this.context = context;
this.products = products;
}
static class ViewHolder {
protected TextView name;
protected Button share;
protected Button call;
}
@Override
public View getView(int position, View convertView, ViewGroup parent)
{
View view = null;
LayoutInflater inflator = context.getLayoutInflater();
view = inflator.inflate(R.layout.product, parent,false);
final ViewHolder viewHolder = new ViewHolder();
final ProductClass file = products.get(position);
viewHolder.name = (TextView) view.findViewById(R.id.name);
viewHolder.share = (Button) view.findViewById(R.id.videoView);
viewHolder.call = (Button) view.findViewById(R.id.videoView);
viewHolder.share.setOnClickListener(new OnClickListener()
{
public void onClick(View v)
{
Intent intent = new Intent(Intent.ACTION_PICK, Contacts.CONTENT_URI);
context.startActivityForResult(intent, PICK_CONTACT);
}
});
viewHolder.name.setText(file.name.toString());
view.setTag(viewHolder);
return view;
}
}
公共类CustomArrayAdapterForProduct扩展了ArrayAdapter
{
私人最终活动背景;
公开最终ArrayList产品;
专用静态最终int PICK_触点=1;
公共CustomArrayAdapterForProduct(活动上下文,ArrayList产品)
{
超级(上下文、右布局、产品、产品);
this.context=上下文;
这一点。产品=产品;
}
静态类视窗夹{
受保护的文本视图名称;
受保护的按钮共享;
保护按钮呼叫;
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图)
{
视图=空;
LayoutInflater充气器=上下文。getLayoutInflater();
视图=充气机。充气(R.layout.product,父项,false);
最终ViewHolder ViewHolder=新的ViewHolder();
最终产品类文件=products.get(位置);
viewHolder.name=(TextView)view.findViewById(R.id.name);
viewHolder.share=(按钮)view.findviewbyd(R.id.videoView);
viewHolder.call=(按钮)view.findviewbyd(R.id.videoView);
viewHolder.share.setOnClickListener(新的OnClickListener()
{
公共void onClick(视图v)
{
意向意向=新意向(Intent.ACTION\u PICK,Contacts.CONTENT\u URI);
上下文。startActivityForResult(意向、选择联系人);
}
});
viewHolder.name.setText(file.name.toString());
view.setTag(viewHolder);
返回视图;
}
}
看看这个context.startActivityForResult(意图,选择联系人)代码>
如何在customArrayAdapter中定义我的onActivityResult
?onActivityResult(int-requestCode、int-resultCode、Intent-data)
是不适用于任何JAVA类的活动类方法
它只适用于Android活动本身。您必须将CustomArrayAdapterForProduct放入活动类或使用接口。这并不能解决问题,只能说明它。在自定义ArrayAdapter中分配按钮单击事件是合乎逻辑的,有时这些按钮单击调用活动,无论是完整的“页面”还是充当对话框的活动。定义和实现接口并不一定意味着框架将在适当的时间调用onActivityResult方法。您如何解决这个问题也可以帮助我!!