Ich erstellte eine Student-Klasse und eine ListView in MainActivity. Hier ist MainActivity:So extrahieren Sie den Text aus einer Zelle in einer ListView
Context context;
ListView listView;
ArrayList<Student> lista;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
lista= new ArrayList<>();
context=this;
Student cursant = new Student("Smith","Ben",14);
Student cursant2 = new Student("White","Jack",21);
Student cursant3 = new Student("Stewart","Matt",33);
lista.add(cursant);
lista.add(cursant2);
lista.add(cursant3);
listView=(ListView) findViewById(R.id.listview);
listView.setAdapter(new CustomAdapter(this,R.layout.activity_main,lista));
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Intent i = new Intent(MainActivity.this,Main2Activity.class);
String selected =((TextView)view.findViewById(R.id.textViewNume)).getText().toString();
i.putExtra("name",selected);
startActivity(i);
}
});
}
Hier ist meine CustomAdapter:
public class CustomAdapter extends ArrayAdapter<Student> {
ArrayList<Student> current_objects;
Context context;
private static LayoutInflater inflater=null;
public CustomAdapter(Context context, int resource, ArrayList<Student> objects) {
super(context, resource, objects);
this.current_objects=objects;
inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public int getCount() {
return current_objects.size();
}
@Override
public Student getItem(int position) {
return current_objects.get(position);
}
@Override
public long getItemId(int position) {
return 0;
}
public class Holder{
TextView tv1,tv2,tv3;
Button button;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
Holder holder = new Holder();
final View rowView;
rowView=inflater.inflate(R.layout.item,null);
holder.tv1=(TextView) rowView.findViewById(R.id.textViewNume);
holder.tv2=(TextView) rowView.findViewById(R.id.textViewPrenume);
holder.tv3=(TextView) rowView.findViewById(R.id.textViewVarsta);
final Student current_cursant = current_objects.get(position);
holder.tv1.setText(current_cursant.getNume());
holder.tv2.setText(current_cursant.getPrenume());
holder.tv3.setText(String.valueOf(current_cursant.getVarsta()));
holder.button=(Button) rowView.findViewById(R.id.button);
holder.button.setTag(position);
holder.button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Integer index=(Integer)v.getTag();
current_objects.remove(index.intValue());
notifyDataSetChanged();
}
});
return rowView;
}
}
Ich habe Main2Activity, und ich möchte den Namen angezeigt werden (in Main2Activity), wenn eine Zelle des Listview ist gedrückt. Ich bin mir nicht sicher über den ClickListener.
zeigen Code der auch das Layout. – Saini