Как сделать нажатие на элемент в моем ListView будет новое действие - PullRequest
0 голосов
/ 05 января 2019

У меня есть ListView с AdapterView, но я хочу знать, как это сделать, нажав на элемент, будет новое действие. У меня уже есть событие onItemClick, и я хочу знать, какой код мне следует реализовать, чтобы при создании каждого элемента в просмотре списка было специальное действие.

public class Alumnos extends AppCompatActivity {

ListView list;
private Toolbar toolbar;
String titulos[] = {"Vicente Nevarez", "Giovanny Alvarado", "Rogelio Lanka",
        "Alan Barrera",
        "Fatima Botello",
        "Paola Gomez",
        "Eric Zapata",
        "Jose Juan Lozano",
        "Alondra Flores",
        "Yoali"};

String descripcion[] = {"Rendimento: Bueno  Grupo: 4B", "Rendimento: Bueno  Grupo: 4B", "Rendimento: Medio  Grupo: 4B", "Rendimento: Malo  Grupo: 4B", "Rendimento: Bueno  Grupo: 4B", "Rendimento: Malo  Grupo: 4B", "Rendimento: Bueno  Grupo: 4B", "Rendimento: Bueno  Grupo: 4B", "Rendimento: Medio  Grupo: 4B", "Rendimento: Bueno  Grupo: 4B"};

int imgs [] = {R.drawable.movies,
        R.drawable.movies,
        R.drawable.movies,
        R.drawable.alondra,
        R.drawable.alan,
        R.drawable.fatima,
        R.drawable.paola,
        R.drawable.movies,
        R.drawable.alondra,
        R.drawable.yoaly,};


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_alumnos);


    list = findViewById(R.id.list1);
    toolbar  = (Toolbar) findViewById(R.id.ToolbarAlu);
    setSupportActionBar(toolbar);
    getSupportActionBar().setTitle("Alumnos Agregados");




    MyAdapter adapter = new MyAdapter(this, titulos, imgs, descripcion);
    list.setAdapter(adapter);
    list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) {
            if (position==0){
                Toast.makeText(Alumnos.this, "El mas chido", Toast.LENGTH_SHORT).show();
            }

        }
    });


}

// адаптер для ListView:

class MyAdapter extends ArrayAdapter<String>{
    Context context;
    String myTitles[];
    String myDescripciones[];
    int[] imgs;

    MyAdapter(Context c, String[] titulos, int[] imgs, String[] descripcion){
        super(c,R.layout.activity_listview, R.id.txtt1, titulos);
        this.context=c;
        this.imgs=imgs;
        this.myTitles=titulos;
        this.myDescripciones=descripcion;
    }

    @NonNull
    @Override
    public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
        LayoutInflater layoutInflater = (LayoutInflater)getApplicationContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        View listviewa = layoutInflater.inflate(R.layout.activity_listview, parent, false);

        CircleImageView images = listviewa.findViewById(R.id.logo);
        TextView myTilte = listviewa.findViewById(R.id.txtt1);
        TextView myDescripcion = listviewa.findViewById(R.id.txtt2);
        images.setImageResource(imgs[position]);
        myTilte.setText(titulos[position]);
        myDescripcion.setText(descripcion[position]);


        return listviewa;
    }
}
}

1 Ответ

0 голосов
/ 05 января 2019

Целое число position внутри onItemClick возвращает позицию выбранного элемента (например, 0 для первого элемента списка). Таким образом, вы можете добавить переключатель, который проверяет значение position и запускать различные действия для каждого значения.

Код будет выглядеть так:

@Override 
public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) { 

    switch(position) { 
        case 0:
        startActivity(new Intent(getApplicationContext(), ActivityA.class));
        break;

        case 1:
        startActivity(new Intent(getApplicationContext(), ActivityB.class));
        break;

        case 2:
        startActivity(new Intent(getApplicationContext(), ActivityC.class));
        break;

     }
}
...