2017-04-24 3 views
0

J'ai l'adaptateur et je veux envoyer des valeurs à une autre activité par putExtra Inside setOnClickListener Y at-il un moyen de le faire.intent.putExtra dans l'adaptateur

HireMe.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 

       context.startActivity(new Intent(context, HireLater.class)); 

       // intent.putExtra nameText & subjectText 

     } 
    }); 

} 

Mon adaptateur HierAdapter.java

public class HireAdapter extends ArrayAdapter<HireItem>{ 


Context context; 

public HireAdapter(@NonNull Context context, @LayoutRes int resource, @NonNull List<HireItem> objects) { 
    super(context, resource, objects); 
    this.context = context; 

} 

@NonNull 
@Override 
public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) { 

    if (convertView == null){ 
     convertView = ((Activity)getContext()).getLayoutInflater() 
       .inflate(R.layout.list_item_teachers,parent,false); 

     Button HireMe = (Button) convertView.findViewById(R.id.hire_me); 
     HireMe.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 

       context.startActivity(new Intent(context, HireLater.class)); 

       // intent.putExtra nameText & subjectText 

     } 
    }); 

} 


    HireItem teacherItem = getItem(position); 

    TextView nameText = (TextView)convertView.findViewById(R.id.result_name); 
    TextView subjectText = (TextView)convertView.findViewById(R.id.result_subject); 
    TextView levelText = (TextView)convertView.findViewById(R.id.level); 
    TextView mCity = (TextView)convertView.findViewById(R.id.result_city); 
    TextView mContact = (TextView)convertView.findViewById(R.id.result_phone); 
    TextView mQualification = (TextView)convertView.findViewById(R.id.Qua_teacher); 
    TextView mSalary = (TextView)convertView.findViewById(R.id.salary); 
    TextView mExperience = (TextView)convertView.findViewById(R.id.exTea); 

    // 

    nameText.setText(teacherItem.getResult_name()); 
    subjectText.setText(teacherItem.getResult_subject()); 
    levelText.setText(teacherItem.getResult_level()); 
    mCity.setText(teacherItem.getResult_city()); 

    // 
    mContact.setText(teacherItem.getResult_mobile()); 
    mQualification.setText(teacherItem.getResult_qualification()); 
    mSalary.setText(teacherItem.getResult_salary()); 
    mExperience.setText(teacherItem.getResult_experince()); 



    return convertView; 

}} 
+0

SIGA este ejemplo que ya esta en stackoverfloe [link] (http://stackoverflow.com/questions/2091465/how-do -i-pass-data-between-activities-in-android-application) –

+1

@IsaM Veuillez utiliser l'anglais –

+1

Personnellement, j'essaie de laisser ce type de logique hors de l'adaptateur et de permettre à l'hôte Activity ou Fragment de s'en occuper. Je suggère d'utiliser une interface pour rappeler à l'activité/fragment avec les informations correctes, puis former l'intention là. – rpm

Répondre

1

Comment allez-vous mettre plus dans ce Intent, si vous ne créez pas la variable et utiliser new Intent() directement?

Modifiez-le simplement comme vous le feriez normalement à tous les autres endroits.

Intent intent = new Intent(context, HireLater.class); 
intent.putExtra("", ""); 
context.startActivity(intent); 

Vous pouvez obtenir votre réponse aussi dans cette autre question Stack: https://stackoverflow.com/a/2091482/7426526