2013-04-22 3 views
2

В методе getView() я хочу вызвать getIntent(). Как я могу достичь этого, не начав новую деятельность. Метод GetView как этотКак вызвать getIntent() в классе адаптера

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; 
} 
+1

Для чего это необходимо? причина? – Sajmon

+0

вы можете передать данные конструктору вашего адаптера. – Raghunandan

+0

Фактически Когда пользователь нажимает на текущую кнопку, я хочу передать данные другой активности, не создавая новую активность. – androidcodehunter

ответ

11

Решение этой проблемы.

  Intent intent = ((Activity) context).getIntent(); 
      intent.putExtra("SELECTED_PAYMENT", mCurrentlyCheckedRB 
        .getText().toString()); 
      ((Activity) context).setResult(((Activity) context).RESULT_OK, 
        intent); 
      ((Activity) context).finish(); 
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 
    } 

создать объект вашего класса адаптера, используя 2-й конструктор в вашей деятельности

Intent yourIntent = new Intent(); 

Или:

Intent yourIntent = getIntent(); 
MyAdapter adapter = new MyAdapter(context,yourIntent); // here pass intent 
+0

Что это? ??? – Sajmon

-1

общественности Посмотреть GetView (конечная ИНТ позиция , View convertView, родительская группа ViewGroup) {

PaymentData rowItem = getItem(position); 


LayoutInflater mInflater = (LayoutInflater) context 
     .getSystemService(Context.getintent().LAYOUT_INFLATER_SERVICE); 

{

// вы можете включить это: context.getintent(); }

0

В классе адаптера вы передаете экземпляр действия и перехватите его переменной Context. Ниже приведен фрагмент поможет вам,

частный Контекст mcontext;

private Intent adapintent; 

MyIntentAdapter(Context context){ 
    this.mcontext = context; 
} 

MyIntentAdapter(Context context,Intent intent){ 
    this(context); 
    this.adapintent= intent; 

} 
Смежные вопросы