gpt4 book ai didi

java - 从 Recyclerview 打开包含卡片的新 Activity

转载 作者:行者123 更新时间:2023-12-01 21:08:30 25 4
gpt4 key购买 nike

有一个看似简单的任务 -

使用回收器 View 显示项目列表,每个项目都应为卡片 View 。单击任何项​​目时,应打开新屏幕,其中显示该项目的详细信息。

我已经看到了关于同一主题的各种问题,我希望能对我所做的尝试提供一些帮助,而不是将我重定向到那里,因为我很新,无法理解如何准确地实现通过查看这些答案。我尝试严格遵循教程,但显然无法复制结果。文件如下

MainActivity.java

. package com.example.hardikvats.recylerviewdemo;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.DefaultItemAnimator;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;

import java.util.ArrayList;

public class MainActivity extends AppCompatActivity {

private String[] phones={"MotoX","Nokia Asha","Lumia 710","Iphone 7s"};
private String[] OperatingSytem={"Android","Symbian","Windows","Ios"};

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
RecyclerView recyclerView= (RecyclerView) findViewById(R.id.recyclerView);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
recyclerView.setItemAnimator(new DefaultItemAnimator());
MyAdapter adapter=new MyAdapter(this,phones);
recyclerView.setAdapter(adapter);

}


}

MyAdapter.java

import android.content.Context;
import android.content.Intent;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

/**
* Created by Hardik Vats on 20-Jan-17.
*/

public class MyAdapter extends RecyclerView.Adapter<MyHolder> {
Context c;
String[] phones;
String[] OperatingSystem;
//CONSTRUCTOR
public MyAdapter(Context c, String[] PhoneModel){
this.c=c;
this.phones=PhoneModel;
//this.OperatingSystem=OperatingSystem;
}
@Override
public MyHolder onCreateViewHolder(ViewGroup parent, int viewType) {
//INFLATING FROM XML TO JAVA VIEW
View v= LayoutInflater.from(parent.getContext()).inflate(R.layout.model,null);

MyHolder holder=new MyHolder(v);
return holder;
}

@Override
public void onBindViewHolder(MyHolder holder, int position) {
holder.PhoneModel.setText(phones[position]);
holder.setItemClickListner(new ItemClickListner() {
@Override
public void onItemClick(View v, int position) {
Intent i=new Intent(c,DetailActivity.class);
i.putExtra("OS name",OperatingSystem[position]);
}
});
}

@Override
public int getItemCount() {
return phones.length;
}

}

MyHolder.java

   import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.widget.TextView;

/**
* Created by Hardik Vats on 20-Jan-17.
*/

public class MyHolder extends RecyclerView.ViewHolder implements View.OnClickListener{
TextView PhoneModel;
ItemClickListner icl;
public MyHolder(View itemView) {
super(itemView);
PhoneModel=(TextView) itemView.findViewById(R.id.MobilePhone);
itemView.setOnClickListener(this);
}

@Override
public void onClick(View v) {
this.icl.onItemClick(v,getLayoutPosition());
}
public void setItemClickListner(ItemClickListner itemClickListner){
this.icl=itemClickListner;
}
}

DetailActivity.java

     import android.content.Intent;

import android.os.Bundle;

import android.support.v7.app.AppCompatActivity;

import android.widget.TextView;
public class DetailActivity extends AppCompatActivity {
TextView OperatingSystem;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_detail2);
Intent i=getIntent();
final String OperatingSystem =i.getExtras().getString("Operating System");


}
}

ItemClickListner.java(Interface)

`import android.view.View;

/**
* Created by Hardik Vats on 20-Jan-17.
*/

public interface ItemClickListner {
void onItemClick(View v, int position);
}`

目标是单击电话数组中的每个列表项,并获取在新文本字段中的新 Activity 中列出操作系统的 Activity

最佳答案

在 i.putExtra("操作系统名称 ....添加这一行

c.startActivity(c,DetailActivity.class);

关于java - 从 Recyclerview 打开包含卡片的新 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41772857/

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