Android listview onItemClick

Every time I run this I get an error. I don’t know what’s wrong? I just want to get a string from array

by index and put it in url and run in active mode.

package info.androidhive.customlistviewvolley;

import java.util.ArrayList;

import com.squareup.picasso.Picasso;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.app.Activity;
import android.content.Intent;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.Switch;
import android.widget.TextView;
import android.widget.Toast;

public class Show extends Activity {
    ArrayList<String> lista = new ArrayList<String>();
    ArrayAdapter<String> adaptera;
       int po;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.show);

     ListView myListView = (ListView)findViewById(R.id.mylistView1);
        myListView.setClickable(true);  
        myListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
              @Override
              public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3) {
                 Intent appInfo = new Intent(getApplicationContext(), VideoViewActivity.class);
                 ArrayList<String> dad =appInfo.getStringArrayListExtra("eps");
                 int itemPosition  = position;
                 appInfo.putExtra("url",dad.get(itemPosition).toString());
                 startActivity(appInfo);
              }
            });



    }

    @Override
    protected void onStart() {
        // TODO Auto-generated method stub
        super.onStart();
        Intent i = getIntent();
        String aaaaa = i.getStringExtra("img");
        String tit = i.getStringExtra("rank");
        TextView te = (TextView) findViewById(R.id.textView1);
        te.setText(tit);
        ArrayList<String> dad =i.getStringArrayListExtra("eps");
        ImageView isd = (ImageView)findViewById(R.id.imageView1);
        Picasso.with(getBaseContext()).load(aaaaa).into(isd);
        ListView myListView = (ListView)findViewById(R.id.mylistView1);
        ArrayList<String> myStringArray1 =  new ArrayList<String>();
        for (int f= 1; f <= dad.size();f++)
        {
            myStringArray1.add(String.valueOf(f));
        }
        adaptera = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, myStringArray1);

            adaptera.notifyDataSetChanged();
            myListView.setAdapter(adaptera);
    }


}

      

+3


source to share


2 answers


In this bit of code:

Intent appInfo = new Intent(getApplicationContext(), VideoViewActivity.class);
ArrayList<String> dad =appInfo.getStringArrayListExtra("eps");
int itemPosition  = position;
appInfo.putExtra("url",dad.get(itemPosition).toString());
startActivity(appInfo);

      



The variable dad

is equal null

and therefore dad.get(itemPosition)

throws a NullPointerException.

+2


source


appInfo

is a newly created intent, so it has no extra data, so it dad

will be null and you will get a NullPointerException when you try to call any method dad

.

You can only receive data with intent if someone added data with methods there putExtra

.



I can only guess what you are trying to do, but if you want to get the value of the list that was clicked, the correct code is:

Intent appInfo = new Intent(Show.this, VideoViewActivity.class);
appInfo.putExtra("url", Show.this.lista.get(position));
startActivity(appInfo);

      

0


source







All Articles