带有自定义适配器的列表视图中的卡片,但我无法获取列表视图项目

问题描述 投票:0回答:1

我正在尝试单击列表视图时项目获取编号和吐司,但不起作用

这是我的活动和其他我是 Android 世界的新手

package com.example.gez1;
//import android.support.v7.app.AppCompatActivity;
import androidx.appcompat.app.AppCompatActivity;
import androidx.cardview.widget.CardView;

import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.Toolbar;

import com.example.gez1.Models.MyModel;
import com.example.gez1.service.ApiService;

import java.util.ArrayList;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
public class IstanbulActivity extends AppCompatActivity {

    CardView cardsehir;
    ListView listView;
    TextView textView;
    String TAG = "IstanbulActivity";
    ArrayList<MyModel> dummyData = new ArrayList<>();
    static CustomListAdapter customListAdapter;

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

        //Make a server call and get data
        tanimla();
        getdata();
        istyertikla();
    }


    public void tanimla() {
        cardsehir = findViewById(R.id.cardsehir);
        textView = findViewById(R.id.txtYerIsim);
        listView = findViewById(R.id.listShowJSONData);

    }

    public void getdata() {
        try {

            new ApiService().getClientList(new Callback<MyModel>() {
                @Override
                public void onResponse(Call<MyModel> call, Response<MyModel> response) {

                    Log.d(TAG, "onResponse: response..." + response);


                    //This will get result part from dummy JSON response
                    dummyData = response.body().getResults();
                    createListView();
                }

                @Override
                public void onFailure(Call<MyModel> call, Throwable t) {

                    Log.d(TAG, "onFailure: response...");
                }
            });

        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }


    public void createListView() {
        //Send JSON object list to custom BaseAdapter
        customListAdapter = new CustomListAdapter(getApplicationContext(), dummyData);
        listView = (ListView) findViewById(R.id.listShowJSONData);
        listView.setAdapter(customListAdapter);

    }



//ı try this dont work
    public void istyertikla() {
         listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                // Tıklanan öğenin pozisyonunu al
                int clickedPosition = position;

                // CustomListAdapter sınıfının getItemAtPosition metodu ile tıklanan öğeye erişim sağla
                MyModel clickedItem = customListAdapter.getItemAtPosition(position);

                if (clickedItem != null) {
                    Toast.makeText(IstanbulActivity.this, "Tıklanan öğe: " + clickedItem.getYerIsim(), Toast.LENGTH_SHORT).show();
                }
            }
        });
    }



}

listview 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"
    tools:context=".IstanbulActivity">

    <ListView
        android:clickable="true"
        android:id="@+id/listShowJSONData"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginStart="20dp"
        android:layout_marginEnd="20dp"
        android:focusable="true" />


</LinearLayout>



列表视图的卡片 xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:orientation="vertical">

    <androidx.cardview.widget.CardView
        android:layout_width="268dp"
        android:layout_height="170dp"
        android:layout_margin="10dp"
        android:layout_gravity="center"
        android:clickable="true"
        android:id="@+id/cardsehir"
        android:foregroundGravity="center"
        app:cardCornerRadius="16dp">
        <ImageView
            android:id="@+id/yerimg"
            android:layout_gravity="center"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"/>
        <TextView
            android:id="@+id/txtYerIsim"
            android:layout_gravity="bottom|center"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginBottom="10dp"
            android:layout_marginTop="10dp"
            android:gravity="center_horizontal"
            android:text="TextView"
            android:textColor="@color/white"
            android:textIsSelectable="true"/>

    </androidx.cardview.widget.CardView>

</LinearLayout>


//啊啊啊啊啊啊啊aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa //啊啊啊啊aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

android listview mobile android-cardview
1个回答
0
投票
public void onSpacerClicked(View view) { // Handle the click event for the spacer // You can put your logic here
}

© www.soinside.com 2019 - 2024. All rights reserved.