安卓setText导入什么Java包,java – 如何在recyclerview上添加SetOnClicklistener

这是我的适配器..

package com.lim.fiture.fiture.adapters;

import android.content.Context;

import android.support.v7.widget.RecyclerView;

import android.view.LayoutInflater;

import android.view.View;

import android.view.ViewGroup;

import android.widget.EditText;

import com.lim.fiture.fiture.R;

import com.lim.fiture.fiture.models.Exercise;

import java.util.ArrayList;

public class AdminActivityAdapter extends RecyclerView.Adapter {

Context context;

public ArrayList exercises;

private OnItemClicked onClick;

//make interface like this

public interface OnItemClicked {

void onItemClick(int position);

}

@Override

public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {

View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.activity_admin_adapter,parent,false);

AdminActivityAdapter.ViewHolder viewHolder = new AdminActivityAdapter.ViewHolder(view);

return viewHolder;

}

@Override

public void onBindViewHolder(ViewHolder holder, int position) {

holder.exerciseName.setText(exercises.get(position).getExerciseName());

holder.mainMuscleGroup.setText(exercises.get(position).getMainMuscleGroup());

holder.otherMuscleGroup.setText(exercises.get(position).getOtherMuscleGroup());

holder.type.setText(exercises.get(position).getType());

holder.equipment.setText(exercises.get(position).getEquipment());

holder.difficulty.setText(exercises.get(position).getDifficulty());

holder.deleteExercise.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

onClick.onItemClick(position);

}

});

}

@Override

public int getItemCount() {

return exercises.size();

}

public class ViewHolder extends RecyclerView.ViewHolder {

private EditText exerciseName, mainMuscleGroup, otherMuscleGroup, type, equipment, difficulty;

private ImageButton deleteExercise;

public ViewHolder(View itemView) {

super(itemView);

exerciseName = itemView.findViewById(R.id.exerciseName);

mainMuscleGroup = itemView.findViewById(R.id.mainMuscleGroup);

otherMuscleGroup = itemView.findViewById(R.id.otherMuscleGroup);

type = itemView.findViewById(R.id.type);

equipment = itemView.findViewById(R.id.equipment);

difficulty = itemView.findViewById(R.id.difficulty);

deleteExercise = itemView.findViewById(R.id.deleteBtn);

}

}

}

这是我的活动

package com.lim.fiture.fiture.activities;

import android.content.ClipData;

import android.content.Intent;

import android.graphics.Color;

import android.graphics.drawable.ColorDrawable;

import android.os.Bundle;

import android.support.annotation.NonNull;

import android.support.design.widget.FloatingActionButton;

import android.support.design.widget.Snackbar;

import android.support.v7.app.ActionBar;

import android.support.v7.widget.LinearLayoutManager;

import android.support.v7.widget.RecyclerView;

import android.support.v7.widget.helper.ItemTouchHelper;

import android.util.Log;

import android.view.Menu;

import android.view.View;

import android.support.v7.app.AppCompatActivity;

import android.widget.ImageButton;

import android.widget.Toast;

import com.google.android.gms.tasks.OnFailureListener;

import com.google.android.gms.tasks.OnSuccessListener;

import com.google.firebase.auth.AuthResult;

import com.google.firebase.auth.FirebaseAuth;

import com.google.firebase.auth.FirebaseUser;

import com.google.firebase.database.ChildEventListener;

import com.google.firebase.database.DataSnapshot;

import com.google.firebase.database.DatabaseError;

import com.google.firebase.database.DatabaseReference;

import com.google.firebase.database.FirebaseDatabase;

import com.lim.fiture.fiture.R;

import com.lim.fiture.fiture.adapters.AdminActivityAdapter;

import com.lim.fiture.fiture.adapters.ExercisesAdapter;

import com.lim.fiture.fiture.models.Exercise;

import java.util.ArrayList;

public class AdminActivity extends AppCompatActivity implements AdminActivityAdapter.OnItemClicked {

private RecyclerView exercisesList;

private AdminActivityAdapter adapter;

private RecyclerView.LayoutManager layoutManager;

private FloatingActionButton addExerciseBtn;

private ExercisesAdapter exercisesAdapter;

private ArrayList exercises = new ArrayList<>();

//TODO: instance variables for firebase database

private DatabaseReference exerciseReference;

private static final String TAG = "AdminActivity";

private FirebaseAuth mAuth;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_admin);

mAuth = FirebaseAuth.getInstance();

exerciseReference = FirebaseDatabase.getInstance().getReference("Exercises");

findViews();

loadExercises();

}

@Override

protected void onStart() {

super.onStart();

FirebaseUser user = mAuth.getCurrentUser();

if (user != null) {

// do your stuff

} else {

signInAnonymously();

}

}

private void signInAnonymously() {

mAuth.signInAnonymously().addOnSuccessListener(this, new OnSuccessListener() {

@Override

public void onSuccess(AuthResult authResult) {

// do your stuff

}

})

.addOnFailureListener(this, new OnFailureListener() {

@Override

public void onFailure(@NonNull Exception exception) {

Log.e(TAG, "signInAnonymously:FAILURE", exception);

}

});

}

@Override

public void onClick(View view) {

switch (view.getId()) {

case R.id.addExerciseBtn:

startActivity(new Intent(this, AddExerciseStepOne.class));

break;

}

}

public void findViews() {

addExerciseBtn = findViewById(R.id.addExerciseBtn);

addExerciseBtn.setOnClickListener(this);

exercisesList = findViewById(R.id.exercisesList);

layoutManager = new LinearLayoutManager(this);

exercisesList.setLayoutManager(layoutManager);

ActionBar bar = getSupportActionBar();

bar.setBackgroundDrawable(new ColorDrawable(Color.parseColor("#2980b9")));

bar.setTitle("Fiture Admin");

}

public void loadExercises() {

exerciseReference.addChildEventListener(new ChildEventListener() {

@Override

public void onChildAdded(DataSnapshot dataSnapshot, String s) {

Exercise exercise = dataSnapshot.getValue(Exercise.class);

Log.d(TAG, exercise.toString());

exercises.add(exercise);

exercisesAdapter = new ExercisesAdapter(AdminActivity.this, exercises);

exercisesList.setAdapter(exercisesAdapter);

}

@Override

public void onChildChanged(DataSnapshot dataSnapshot, String s) {

}

@Override

public void onChildRemoved(DataSnapshot dataSnapshot) {

}

@Override

public void onChildMoved(DataSnapshot dataSnapshot, String s) {

}

@Override

public void onCancelled(DatabaseError databaseError) {

}

});

}

@Override

public void onItemClick(int position) {

}

}

所以我想要做的是当点击删除按钮时它会在回收器视图中删除所选的(包含有关练习的详细信息的cardview)并在firebase中删除它,但我很难在互联网上寻找教程.谁知道怎么做?非常需要你的帮助.谢谢

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
首先,在你的项目中需要配置 Room Persistence Library,具体可以参考官方文档。 接着,你需要创建一个数据实体类,用于定义存储在数据库中的数据结构,例如: ```java @Entity(tableName = "notes") public class Note { @PrimaryKey(autoGenerate = true) private int id; private String title; private String content; public Note(String title, String content) { this.title = title; this.content = content; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getContent() { return content; } public void setContent(String content) { this.content = content; } } ``` 然后,你需要创建一个 DAO(Data Access Object)接口,用于定义对数据进行 CRUD(Create、Read、Update、Delete)操作的方法,例如: ```java @Dao public interface NoteDao { @Query("SELECT * FROM notes") List<Note> getAll(); @Insert void insertAll(Note... notes); @Delete void delete(Note note); @Update void update(Note note); } ``` 接下来,在你的 Activity 中,你需要创建一个 RecyclerView 和一个 RecyclerView.Adapter,并将它们连接起来。 在 Adapter 中,你需要定义 ViewHolder 类,并实现 onCreateViewHolder、onBindViewHolder 和 getItemCount 方法,例如: ```java public class NoteAdapter extends RecyclerView.Adapter<NoteAdapter.NoteViewHolder> { private List<Note> notes; public NoteAdapter(List<Note> notes) { this.notes = notes; } @NonNull @Override public NoteViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { View view = LayoutInflater.from(parent.getContext()) .inflate(R.layout.item_note, parent, false); return new NoteViewHolder(view); } @Override public void onBindViewHolder(@NonNull NoteViewHolder holder, int position) { Note note = notes.get(position); holder.titleTextView.setText(note.getTitle()); holder.contentTextView.setText(note.getContent()); } @Override public int getItemCount() { return notes.size(); } static class NoteViewHolder extends RecyclerView.ViewHolder { TextView titleTextView; TextView contentTextView; NoteViewHolder(View itemView) { super(itemView); titleTextView = itemView.findViewById(R.id.titleTextView); contentTextView = itemView.findViewById(R.id.contentTextView); } } } ``` 最后,在 Activity 中,你需要获取 Room 数据库实例,并调用 DAO 中定义的方法来获取数据,并将数据传递给 RecyclerView.Adapter,例如: ```java public class MainActivity extends AppCompatActivity { private RecyclerView recyclerView; private NoteAdapter adapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); recyclerView = findViewById(R.id.recyclerView); recyclerView.setLayoutManager(new LinearLayoutManager(this)); adapter = new NoteAdapter(new ArrayList<Note>()); recyclerView.setAdapter(adapter); AppDatabase db = Room.databaseBuilder(getApplicationContext(), AppDatabase.class, "database-name").build(); new AsyncTask<Void, Void, List<Note>>() { @Override protected List<Note> doInBackground(Void... voids) { return db.noteDao().getAll(); } @Override protected void onPostExecute(List<Note> notes) { super.onPostExecute(notes); adapter = new NoteAdapter(notes); recyclerView.setAdapter(adapter); } }.execute(); } } ``` 以上就是在 MainActivity 中调用 Room 数据库填充 RecyclerViewJava 代码。注意,为了避免在主线程中进行数据库操作而导致应用卡顿,我们使用了 AsyncTask 来进行异步操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值