Как реализовать OnItemLongClickListener на ListView из массива / JSON? - PullRequest
0 голосов
/ 21 мая 2018

У меня есть список фильмов, и когда я продолжаю нажимать на фильм, я хочу отобразить краткий обзор фильма.Я пытаюсь запустить этот простой код, но он не возвращает значение.PS: JSON, который я сделал в https://app.subarnanto.com/api/inventory, на самом деле не является списком фильмов, я только что научился создавать API для nodejs и MySQL для своего школьного задания.Спасибо.

private static final String TAG = "MainActivity";
    String url = "https://app.subarnanto.com/api/inventory";
//    String url = "https://www.subarnanto.com/api/andri.json";
    ListView list;
    private List<MovieDataSet> listMovie = new ArrayList<>();
    private MovieAdapter movieAdapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        list = (ListView)findViewById(R.id.list);

        RequestQueue queue = Volley.newRequestQueue(MainActivity.this);
        JsonArrayRequest jar = new JsonArrayRequest(url, new Response.Listener<JSONArray>() {
            @Override
            public void onResponse(JSONArray response) {
                //Toast.makeText(MainActivity.this, response.toString(), Toast.LENGTH_LONG).show();
                listMovie.clear();
                for (int i=0; i<response.length(); i++) {
                    try {
                        JSONObject job = response.getJSONObject(i);
                        MovieDataSet mds = new MovieDataSet();
                        mds.setImageUrl(job.getString("image"));
                        mds.setJudul(job.getString("name"));
                        mds.setYear(job.getInt("serial"));
                        mds.setRating(job.getDouble("tag"));
                        listMovie.add(mds);
                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
                }
                movieAdapter = new MovieAdapter(MainActivity.this, listMovie);
                movieAdapter.notifyDataSetChanged();
                list.setAdapter(movieAdapter);

                list.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
                   @Override
                   public boolean onItemLongClick(AdapterView<?> adapterView, View view, int i, long l) {
                       Log.d(TAG, "onItemLongClick:" + listMovie.get(i));

                       Toast.makeText(MainActivity.this, "Anda menekan: " + listMovie.get(i), Toast.LENGTH_LONG).show();
                       return false;
                   }
                });
           }
    }

Pic 1 - setOnItemLongClickListener

1 Ответ

0 голосов
/ 24 мая 2018

Используйте код как показано ниже

list.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
               @Override
               public boolean onItemLongClick(AdapterView<?> adapterView, View view, int i, long l) {
                   Log.d(TAG, "onItemLongClick:" + listMovie.get(i));

                   Toast.makeText(MainActivity.this, "Anda menekan: " + listMovie.get(i).getSynopsis/*this from your MovieDataSet model class*/ , Toast.LENGTH_LONG).show();
                   return false;
               }
            });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...