Domanda

Sto cercando di passare i dati di ListItem ciick in un'altra attività, ma ogni volta che tocca una qualsiasi dell'oggetto di elenco né in grado di ottenere il pane tostato né in grado di passare il valore dell'elemento di elenco selezionato a un'altra attività.

Quindi qui voglio sapere:

.

Come passare i valori da un'attività all'altra usando il rubinetto sulla voce Elenco?

e secondo

.

Perché non mostrare la posizione di elenco TAPpato in Tostato?

mainactivity.java:

@Override
        protected void onPostExecute(Void args) {
            // Locate the listview in listview_main.xml
            listview = (ListView) findViewById(R.id.listview);
            // Pass the results into ListViewAdapter.java
            adapter = new ListViewAdapter(MainActivity.this, arraylist);
            // Set the adapter to the ListView
            listview.setAdapter(adapter);
            // Close the progressdialog
            mProgressDialog.dismiss();

            listview.setOnItemClickListener(new OnItemClickListener() {

                @Override
                public void onItemClick(AdapterView<?> parent, View view,
                        int position, long id) {
                    Toast.makeText(MainActivity.this, position, Toast.LENGTH_LONG).show();
                    // TODO Auto-generated method stub
                    Intent intent = new Intent(MainActivity.this, SingleItemView.class);
                    // Pass all data rank
                    intent.putExtra("rank", arraylist.get(position).get(MainActivity.RANK));
                    // Start SingleItemView Class
                    startActivity(intent);
                }
            });         
        }
.

Dopo aver messo Log.d Ottenere Errore, selezionare il registro completo sotto

@Override
                public void onItemClick(AdapterView<?> parent, View view,
                        int position, long id) {
                    Toast.makeText(MainActivity.this, position, Toast.LENGTH_LONG).show();
                    // TODO Auto-generated method stub
                    Log.d("RANK::", arraylist.get(position).get(MainActivity.RANK));
.

Log:

06-04 18:21:12.725: E/AndroidRuntime(19957): FATAL EXCEPTION: main
06-04 18:21:12.725: E/AndroidRuntime(19957): android.content.res.Resources$NotFoundException: String resource ID #0x0
06-04 18:21:12.725: E/AndroidRuntime(19957):    at android.content.res.Resources.getText(Resources.java:242)
06-04 18:21:12.725: E/AndroidRuntime(19957):    at android.widget.Toast.makeText(Toast.java:304)
06-04 18:21:12.725: E/AndroidRuntime(19957):    at com.androidbegin.jsonparsetutorial.MainActivity$DownloadJSON$1.onItemClick(MainActivity.java:107)
06-04 18:21:12.725: E/AndroidRuntime(19957):    at android.widget.AdapterView.performItemClick(AdapterView.java:301)
06-04 18:21:12.725: E/AndroidRuntime(19957):    at android.widget.AbsListView.performItemClick(AbsListView.java:1280)
06-04 18:21:12.725: E/AndroidRuntime(19957):    at android.widget.AbsListView$PerformClick.run(AbsListView.java:3071)
06-04 18:21:12.725: E/AndroidRuntime(19957):    at android.widget.AbsListView$1.run(AbsListView.java:3972)
06-04 18:21:12.725: E/AndroidRuntime(19957):    at android.os.Handler.handleCallback(Handler.java:615)
06-04 18:21:12.725: E/AndroidRuntime(19957):    at android.os.Handler.dispatchMessage(Handler.java:92)
06-04 18:21:12.725: E/AndroidRuntime(19957):    at android.os.Looper.loop(Looper.java:137)
06-04 18:21:12.725: E/AndroidRuntime(19957):    at android.app.ActivityThread.main(ActivityThread.java:4921)
06-04 18:21:12.725: E/AndroidRuntime(19957):    at java.lang.reflect.Method.invokeNative(Native Method)
06-04 18:21:12.725: E/AndroidRuntime(19957):    at java.lang.reflect.Method.invoke(Method.java:511)
06-04 18:21:12.725: E/AndroidRuntime(19957):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1036)
06-04 18:21:12.725: E/AndroidRuntime(19957):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:803)
06-04 18:21:12.725: E/AndroidRuntime(19957):    at dalvik.system.NativeStart.main(Native Method)
.

È stato utile?

Soluzione

Cambia questo

Toast.makeText(MainActivity.this, position, Toast.LENGTH_LONG).show();
.

a

Toast.makeText(MainActivity.this, String.valueOf(position), Toast.LENGTH_LONG).show();
.

Altri suggerimenti

prova a scrivere seguendo linee in OnCreat invece di OnPostexecute

listview = (ListView) findViewById(R.id.listview);

listview.setOnItemClickListener(new OnItemClickListener() {

                @Override
                public void onItemClick(AdapterView<?> parent, View view,
                        int position, long id) {
                    Toast.makeText(MainActivity.this, position, Toast.LENGTH_LONG).show();
                    // TODO Auto-generated method stub
                    Intent intent = new Intent(MainActivity.this, SingleItemView.class);
                    // Pass all data rank
                    intent.putExtra("rank", arraylist.get(position).get(MainActivity.RANK));
                    // Start SingleItemView Class
                    startActivity(intent);
                }
            });    
.

Prova a utilizzare i metodi di Setag (Object) e GetTag ().Applicare Setag () su ogni vista che rappresenta la riga nella tua valida di lista.Quindi, nel metodo ONITEMClick () Utilizzare la variabile "Visualizza" che viene passata come parametro per estrarre valore superato usando GetTag ().La tua soluzione sembra fine ma usare i tag per passare i valori a onclicks è previsto a causa di motivi di ottimizzazione.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top