Я хочу получить идентификатор нажатой кнопки курса и загрузить данные для этого идентификатора. - PullRequest
0 голосов
/ 05 июля 2019

В настоящее время я использую представление переработчика для загрузки курсов с использованием JSON, первый курс имеет свой идентификатор в JSON, который равен единице, а затем второй, каждый курс имеет свой идентификатор, который хранится в БД. Я хочу, чтобы, если я нажму первую кнопку, она должна сохранить свой идентификатор, который равен единице, моему диспетчеру сеансов и передать его следующему действию для загрузки соответствующих данных, а когда я нажму на вторую кнопку, она должна загрузить данные, передав соответствующие Я БЫ. Я прикрепил onclick моего представления переработчика, оно должно получить идентификатор нажатой кнопки и сохранить его в строку, которую я затем сохраню в диспетчере сеансов.

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);    }

}

1 Ответ

0 голосов
/ 06 июля 2019

Используйте Intent, чтобы установить данные (т. Е. Идентификатор нажатой кнопки) в качестве дополнительных параметров намерения в первом действии и получить дополнительные сведения намерения во втором действии.

// 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");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...