我当前正在使用回收站视图通过JSON加载课程,第一门课程在JSON中的ID为1,然后第二课,每门课程的ID存储在数据库中。我希望如果单击第一个按钮,则应将其ID保存到我的会话管理器中,并将其传递给下一个活动以加载其相应的数据,当我单击第二个按钮时,应通过传递其各自的ID来加载数据ID。我已经附加了回收者视图的onclick,它应该获得单击的按钮的ID,并将其存储到一个字符串中,然后将其存储到会话管理器中。
private RecyclerView mRecyclerView;
private CourseAdapter mExampleAdapter;
private ArrayList<CourseItem> mExampleList;
private RequestQueue mRequestQueue;
private static final String URL_PRODUCTS = "https://www.sniptx.com/ws/findTeacher/allCourses.php";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_home);
mRecyclerView = (RecyclerView) findViewById(R.id.course_recycler_view);
mRecyclerView.setHasFixedSize(true);
mRecyclerView.setLayoutManager(new LinearLayoutManager(this));
mRecyclerView.addOnItemTouchListener(new RecyclerItemClickListener(this, mRecyclerView, new RecyclerItemClickListener
.OnItemClickListener() {
@Override
public void onItemClick(View view, int position) {
Toast.makeText(HomeActivity.this, "Item Clicked" + position , Toast.LENGTH_LONG).show();
}
@Override
public void onItemLongClick(View view, int position) {
//handle longClick if any
}
}));
mExampleList = new ArrayList<>();
mRequestQueue = Volley.newRequestQueue(this);
parseJSON();
}
private void parseJSON() {
StringRequest stringRequest = new StringRequest(Request.Method.GET, URL_PRODUCTS,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
try {
JSONObject obj = new JSONObject(response);
JSONArray courseArray = obj.getJSONArray("courses");
for (int i = 0; i < courseArray.length(); i++) {
JSONObject courseObject = courseArray.getJSONObject(i);
String courseName = courseObject.getString("c_name");
String id = courseObject.getString("c_id").trim();
l.add(new CourseItem(courseName, id));
}
try {
JSONArray array = new JSONArray(response);
for (int i = 0; i < array.length(); i++) {
JSONObject product = array.getJSONObject(i);
String courseName = product.getString("c_name");
String id = product.getString("id").trim();
mExampleList.add(new CourseItem(courseName, id));
Toast.makeText(HomeActivity.this,"ID is" +id, Toast.LENGTH_SHORT).show();
}
mExampleAdapter = new CourseAdapter(HomeActivity.this, mExampleList);
mRecyclerView.setAdapter(mExampleAdapter);
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
error.printStackTrace();
}
});
Volley.newRequestQueue(this).add(stringRequest); }
}
答案 0 :(得分:0)
在第一个活动中使用Intent将数据(即,被单击按钮的ID)设置为附加的目标意图参数,并在第二个活动中获取附加的意图。
// first activity
Intent i = new Intent(getApplicationContext(), SecondActivity.class);
i.putExtra("id", value);
startActivity(i);
// second activity
Bundle extras = getIntent().getExtras();
int id = extras.getInt("id");