簡體   English   中英

我不能 select 列表視圖中的項目

[英]I can't select an item in list view

我搜索了各種網站和教程,我做了完全相同的事情,但我什至無法從我的列表中制作一個 Toast。

這是我的活動視圖 list_view.xml 的xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:padding="50px"
    android:background="@drawable/minimalist_wallpapers_droidviews_25"
    tools:context=".ViewList"
    >
    <com.google.android.material.card.MaterialCardView
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:id="@+id/card"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="8dp"
        >
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical">

            <ListView
                android:id="@+id/lista"
                android:layout_width="match_parent"
                android:layout_height="wrap_content">

            </ListView>

        </LinearLayout>
    </com.google.android.material.card.MaterialCardView>

</LinearLayout>

這是我的ViewList.java

package com.example.trialandroid;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.Toast;

import com.arcu.dao.DaoPersona;
import com.arcu.util.Adaptador;

import java.util.List;

public class ViewList extends AppCompatActivity {

    DaoPersona dao;
    Adaptador adaptador;
    List lista;
    ListView listView;

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

        dao = new DaoPersona(ViewList.this);
        lista = dao.listarPersonas();
        adaptador = new Adaptador(lista, dao, this);
        listView = (ListView) findViewById(R.id.listView);
        listView.setAdapter(adaptador);
        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                System.out.println("onclicklistener");
                Toast.makeText(getApplicationContext(), "Posicion: ", Toast.LENGTH_LONG);
            }
        });
    }
}

我還有一個名為Adaptador.java 的適配器 class

package com.arcu.util;

import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.util.Base64;
import android.view.ContextThemeWrapper;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;

import com.arcu.bean.BeanPersona;
import com.arcu.dao.DaoPersona;
import com.example.trialandroid.R;

import java.util.ArrayList;
import java.util.List;

public class Adaptador extends BaseAdapter {

    List<BeanPersona> lista;
    DaoPersona dao;
    BeanPersona bean;
    ConversorImagenes conversor = new ConversorImagenes();
    Activity actividad;

    public Adaptador(List<BeanPersona> lista, DaoPersona dao, Activity actividad) {
        this.lista = lista;
        this.dao = dao;
        this.actividad = actividad;
    }

    @Override
    public int getCount() {
        return lista.size();
    }

    @Override
    public BeanPersona getItem(int i) {
        bean = lista.get(i);
        return null;
    }

    @Override
    public long getItemId(int i) {
        bean = lista.get(i);
        return bean.getIdPersona();
    }

    @Override
    public View getView(int position, View view, ViewGroup parent) {
        View vista = view;

        if(vista == null){
            LayoutInflater li = (LayoutInflater) actividad.getSystemService(ContextThemeWrapper.LAYOUT_INFLATER_SERVICE);
            vista = li.inflate(R.layout.list_element,null);
        }

        bean = lista.get(position);

        ImageView fotoLista = (ImageView) vista.findViewById(R.id.listFoto);
        TextView nombreLista = (TextView) vista.findViewById(R.id.listNombre);
        TextView fechaNacLista = (TextView) vista.findViewById(R.id.listFechaNac);
        TextView areaTrabajoLista = (TextView) vista.findViewById(R.id.listAreaTrabajo);
        Button modificarBtn = (Button) vista.findViewById(R.id.listBtnModificar);
        Button eliminarBtn = (Button) vista.findViewById(R.id.listBtnEliminar);

        fotoLista.setImageBitmap(conversor.stringABitmap(bean.getFoto()));
        nombreLista.setText(bean.getNombre());
        fechaNacLista.setText(bean.getFechaNac());
        areaTrabajoLista.setText(bean.getAreaTrabajo());

        modificarBtn.setTag(position);
        eliminarBtn.setTag(position);

        modificarBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

            }
        });

        eliminarBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

            }
        });

        return vista;
    }
}

我不知道發生了什么,因為我剛剛開始 Android 開發。

請幫忙!

提前致謝。

您忘記將.show()添加到您的Toast 嘗試這個:

Toast.makeText(getApplicationContext(), "Posicion: ", Toast.LENGTH_LONG).show();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM