在getView()方法中,我想调用getIntent()。如何在不开始新活动的情况下实现这一目标。像这样的getView方法
public View getView(final int position, View convertView, ViewGroup parent) {
PaymentData rowItem = getItem(position);
LayoutInflater mInflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
if (convertView == null) {
convertView = mInflater.inflate(
com.android.paypal.homeactivity.R.layout.list_item, null);
holder = new ViewHolder();
holder.radioBtn = (RadioButton) convertView
.findViewById(com.android.paypal.homeactivity.R.id.rdb_payment_method);
convertView.setTag(holder);
} else
holder = (ViewHolder) convertView.getTag();
if (position == getCount() - 1 && userSelected == false) {
holder.radioBtn.setChecked(true);
mCurrentlyCheckedRB = holder.radioBtn;
} else {
holder.radioBtn.setChecked(false);
}
holder.radioBtn.setText(rowItem.getRdbText());
return convertView;
}
答案 0 :(得分:16)
以下是此问题的解决方案。
Intent intent = ((Activity) context).getIntent();
intent.putExtra("SELECTED_PAYMENT", mCurrentlyCheckedRB
.getText().toString());
((Activity) context).setResult(((Activity) context).RESULT_OK,
intent);
((Activity) context).finish();
答案 1 :(得分:3)
public class MyAdapter extends ArrayAdapter
{
private Context context;
private Intent intent;
MyAdapter(Context context)
{
this.context = context;
}
MyAdapter(Context context,Intent intent)
{
this(context);
this.intent = intent; // use this intent
}
private View getView()
{
// use intent here
}
使用活动中的第二个构造函数
创建Adapter类的ObjectIntent yourIntent = new Intent();
或者:
Intent yourIntent = getIntent();
MyAdapter adapter = new MyAdapter(context,yourIntent); // here pass intent
答案 2 :(得分:0)
在适配器类中,您传递活动实例并使用Context变量捕获它。 以下代码段将为您提供帮助,
私有Context mcontext;
private Intent adapintent;
MyIntentAdapter(Context context){
this.mcontext = context;
}
MyIntentAdapter(Context context,Intent intent){
this(context);
this.adapintent= intent;
}
答案 3 :(得分:-1)
public View getView(final int position,View convertView,ViewGroup parent){
PaymentData rowItem = getItem(position);
LayoutInflater mInflater = (LayoutInflater) context
.getSystemService(Context.getintent().LAYOUT_INFLATER_SERVICE);
{
//你可以包含这个:context.getintent(); }