java - 当我单击任何 RecyclerView 列表项时,如何在 MainActivity 的 EditText 中显示该特定单击项?
问题描述
在这里,我使用改造 api 调用从服务器获取了一个包含“状态名称”的列表,并将其显示在回收器视图中,但是当单击应该在 MainActivity 的编辑文本中显示的任何状态名称时,我该怎么做? ??
我曾尝试使用此链接在回收器视图中实现单击侦听器: 如何单击活动中的回收器视图项目?
public class MainActivity extends AppCompatActivity implements RecyclerItemClickListener.onItemClickListener {
APIInterface apiInterface;
RecyclerView recyclerView;
private List<State> stateList;
RecyclerView.Adapter adapter;
LinearLayoutManager linearLayoutManager;
private DividerItemDecoration dividerItemDecoration;
private EditText editText;
private TextView state;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
editText = findViewById(R.id.edit_text);
recyclerView = findViewById(R.id.main_list);
stateList = new ArrayList<>();
linearLayoutManager = new LinearLayoutManager(this);
linearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL);
dividerItemDecoration = new DividerItemDecoration(recyclerView.getContext(),
linearLayoutManager.getOrientation());
//null reference is occuring over here.
//placing a text in editText.
editText.setText(state.getText().toString());
apiInterface=NetworkClient.getRetrofitClient().create(APIInterface.class);
getData();
}
private void getData() {
Call<PostList> postList = apiInterface.getPostList();
postList.enqueue(new Callback<PostList>() {
@Override
public void onResponse(Call<PostList> call, final Response<PostList> response) {
StatesAdapter(getApplicationContext(),response.body().getStates());
recyclerView.setHasFixedSize(true);
recyclerView.setLayoutManager(linearLayoutManager);
recyclerView.addItemDecoration(dividerItemDecoration);
adapter = new StatesAdapter(MainActivity.this, response.body().getStates());
recyclerView.addOnItemTouchListener(new RecyclerItemClickListener(MainActivity.this,recyclerView, new RecyclerItemClickListener.onItemClickListener() {
@Override
public void onItemClick(View v, int position) {
state =(TextView) response.body().getStates();
}
@Override
public void onLongItemClick(View v, int position) {
}
}));
recyclerView.setAdapter(adapter);
adapter.notifyDataSetChanged();
}
@Override
public void onFailure(Call<PostList> call, Throwable t) {
Toast.makeText(MainActivity.this, "Failure", Toast.LENGTH_SHORT).show();
}
});
}
//PostList 类
公共类 PostList {
@SerializedName("code")
@Expose
private String code;
@SerializedName("States")
@Expose
private List<State> states = null;
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public List<State> getStates() {
return states;
}
public void setStates(List<State> states) {
this.states = states;
}
}
解决方案
推荐阅读
- rest - 如何在 Azure 数据工厂 V2 中使用 HTTP 或 REST 连接器创建动态 API 终结点连接
- regex - 为什么 sed 不提取价值?
- javascript - 带有预签名 URL 的 AWS S3 PUT 请求在 javascript 中不起作用
- google-bigquery - 如何在 24 小时窗口内获得每个唯一用户的重复数据转换
- x86 - 如何在 Linux 上的 NASM 中创建 UEFI 内核
- node.js - 插入 BigQuery 表时偶尔会出现 401“Invalid Credentials”错误
- reverse-engineering - CRC32 参数逆向工程可以访问多个示例
- angular - Angular RxJs Guard 等待服务的 BehaviorSubject 具有价值
- c# - 如何使用 C# 声明一个类的初始化多维数组
- linux - 小型嵌入式系统上主要应用程序的核心转储