gpt4 book ai didi

java - 我正在尝试创建一个点击监听器,一旦点击它就会打开一个新 Activity

转载 作者:行者123 更新时间:2023-12-01 06:00:58 25 4
gpt4 key购买 nike

我试图让一个recyclerview可以有 Intent 地点击。数据将从 firebase 提取到 recyclerview。但是当我运行代码时,我收到错误无法解析符号 findViewById(int)”。此错误发生在onBindViewHolder()<的第四行.这是我的布局代码

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clickable="true"
>

<TextView
android:id="@+id/textView2"
android:textColor="@color/colorPrimary"
style="@style/Base.TextAppearance.AppCompat.Small"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:layout_marginBottom="8dp"
android:gravity="center"
android:text="textview"
android:minWidth="100dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:clickable="true"/>

<LinearLayout
android:id="@+id/linearLayout"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:layout_marginEnd="8dp"
android:layout_marginBottom="8dp"
android:orientation="vertical"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/textView2"
app:layout_constraintTop_toTopOf="parent"
android:clickable="true"
>

<TextView
android:id="@+id/textView3"
android:gravity="center_vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textStyle="bold"
android:layout_marginBottom="8dp"
android:text="textview"
android:clickable="true"/>



<TextView
android:layout_marginTop="8dp"
android:id="@+id/textView4"
android:gravity="center_vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="textview"
android:clickable="true"/>
</LinearLayout>
</android.support.constraint.ConstraintLayout>

and this is my Adapter

package com.example.helpresponse;

import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import android.support.v7.widget.RecyclerView;



import java.util.ArrayList;
import java.util.Locale;

public class TargetDataAdapter extends RecyclerView.Adapter<TargetDataAdapter.TargetViewHolder>{

ArrayList<AndroidTargets> targetsArrayList;
private Context context;
// View myClickableView;
public TargetDataAdapter(ArrayList<AndroidTargets> mTargetData) {
targetsArrayList = mTargetData;
}

@NonNull
@Override
public TargetViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
context = viewGroup.getContext();
View v= LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.target_row,viewGroup,false);
return new TargetViewHolder(v);

}
@Override
public void onBindViewHolder(@NonNull TargetViewHolder viewHolder, int i) {
viewHolder.androidTargetName.setText(targetsArrayList.get(i).FIELD1 );
viewHolder.androidTargetNumber.setText(String.format(Locale.getDefault(), "API Level: %d", targetsArrayList.get(i).FIELD2));
viewHolder.androidTargetShortName.setText(targetsArrayList.get(i).FIELD3);
View myClickableView = findViewById(R.id.linearLayout);
//myClickableView.setClickable(true);
myClickableView.setOnClickListener((v) -> {
Intent intent = new Intent(context, MapsActivity.class);
int myData = 1;
intent.putExtra("myDataKey", myData);
//more intent.putExtra(s) as needed
context.startActivity(intent);
});
}

@Override
public int getItemCount() {
if(targetsArrayList == null)
return 0;
return targetsArrayList.size();
}

public static class TargetViewHolder extends RecyclerView.ViewHolder {
protected TextView androidTargetName;
protected TextView androidTargetNumber;
protected TextView androidTargetShortName;

public TargetViewHolder(@NonNull View itemView) {
super(itemView);
androidTargetShortName= itemView.findViewById(R.id.textView2);
androidTargetName= itemView.findViewById(R.id.textView3);
androidTargetNumber= itemView.findViewById(R.id.textView4);
}
}





}

我想知道我做错了什么。任何帮助将不胜感激

最佳答案

您好,下面的行导致了问题。

View myClickableView = findViewById(R.id.linearLayout);

它应该在 itemview 中。

关于java - 我正在尝试创建一个点击监听器,一旦点击它就会打开一个新 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59500203/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com