How to redirect to another activity in android on click of an element

Here is my code for the Click item and print the data as a list.

listView = (ListView) layout.findViewById(R.id.listView1);
    Notifcationadapter adapter = new Notifcationadapter(this, notifies);
    listView.setAdapter(adapter);
    listView.setOnItemClickListener(this);
}

@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

    View parentView = (View) view.getParent();
    TextView value1 = ((TextView) parentView.findViewById(R.id.title));

    String value = value1.getText().toString();

    if (value.equals("Post"))
        Toast.makeText(this, "Post", 1000).show();

    if (value.equals("Request For travelling"))
        Toast.makeText(this, "Request for travelling", 1000).show();
}

      

Here is my adapter:

public class Notifcationadapter extends BaseAdapter {
    private static ArrayList<Notify> values;
    Context context;
    // List<RowItem> rowItems;
    ViewHolder holder = null;
    LinearLayout linear2;
    DataBaseManager dbManager = new DataBaseManager(context);
    ArrayList<Notify> notifies;

    public Notifcationadapter(Context context, ArrayList<Notify> notifies) {
        super();
        this.context = context;
        this.notifies = notifies;
    }

    /* private view holder class */
    private class ViewHolder {

        TextView txtTitle;
        TextView txtDesc;
        ImageView yesimage;
        ImageView noimage;
        TextView revresetime;
        LinearLayout linear2;

    }

    public View getView(int position, View convertView, ViewGroup parent) {
        LayoutInflater mInflater = (LayoutInflater) context.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
        if (convertView == null) {
            convertView = mInflater.inflate(R.layout.notifcationlistitem, null);
            holder = new ViewHolder();
            holder.linear2 = (LinearLayout) convertView.findViewById(R.id.linear2);
            holder.txtDesc = (TextView) convertView.findViewById(R.id.desc);
            holder.txtTitle = (TextView) convertView.findViewById(R.id.title);
            holder.yesimage = (ImageView) convertView.findViewById(R.id.imageView1);
            holder.noimage = (ImageView) convertView.findViewById(R.id.imageView2);
            holder.revresetime = (TextView) convertView.findViewById(R.id.revresetime);

            convertView.setTag(holder);
        } else {
            holder = (ViewHolder) convertView.getTag();
        }

        // holder.txtTitle.setText("Title");
        String statustype = notifies.get(position).getNotificationType();

        if (statustype.equals("1")) {
            holder.txtDesc.setText(notifies.get(position).getNotificationDescrpiton());
            holder.revresetime.setText(Functions.setLastSeenNotifcationTime(notifies.get(position).getNotificationDatetime()));
            holder.txtTitle.setText("Request For travelling");
            holder.yesimage.setVisibility(View.VISIBLE);
            holder.noimage.setVisibility(View.VISIBLE);
        } else {
            holder.txtDesc.setText(notifies.get(position).getNotificationDescrpiton());
            holder.txtTitle.setText("Post");
            holder.revresetime.setText(Functions.setLastSeenNotifcationTime(notifies.get(position).getNotificationDatetime()));
            holder.yesimage.setVisibility(View.GONE);
            holder.noimage.setVisibility(View.GONE);
        }

        if (position % 2 == 0) {
            convertView.setBackgroundColor(Color.parseColor("#ffffff"));
        } else {
            convertView.setBackgroundColor(Color.parseColor("#f5f6f1"));
        }

        holder.yesimage.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {
                Toast.makeText(context, "Yes", 10000).show();
                holder.linear2.setVisibility(View.INVISIBLE);
            }
        });

        holder.noimage.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                Toast.makeText(context, "NO", 10000).show();
                holder.linear2.setVisibility(View.INVISIBLE);
            }
        });

        return convertView;
    }

    @Override
    public int getCount() {
        return notifies.size();
    }

    @Override
    public Object getItem(int position) {
        return notifies.get(position);
    }

    @Override
    public long getItemId(int position) {
        return position;
    }

}

      

I am displaying data in a list view i wan i want to apply to the click function of an item so that in case a message in the list is displayed in the text view list then its item should click on it. Print a message if it asks for a trip then it should show a trip request but I cannot do that please help where I am doing wrong.

+3


source to share


3 answers


you get the same value because of this line

TextView value1 = ((TextView) parentView.findViewById(R.id.title));

      

to get the value String

in your adapter or arraylist you can do something like this.

I am assuming you have an arraylist of objects

//you arraylist contains object/class 
 String value1 = notifies.get(position).getTitle();

      

and using adapter



String value1 = adapter.getItem(position);

      

then a @Override

function getItem()

in your adapter

@Override
public String getItem(int position){

  return  notifies.get(position).getTitle();

}

      

then go to another activity according to your if statement

@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

    View parentView = (View) view.getParent();
    String value = notifies.get(position).getTitle();


     Intent i = null;
    if (value.equals("Post")){
          i = new Intent(context,PostActivity.class);
    }
    else if (value.equals("Request For travelling")){
           i = new Intent(context,RequestActivity.class);
    }

    if(i !=null){
       startActivity(i);
     }
}

      

+2


source


I think you should be using int position onItemClick. and then use if (notifies.get (position) .getNotificationType () == 1)



it will be faster and should also work efficiently.

+1


source


First remove the onitemclick listener from activity. and use this code -


listView.setOnItemClickListener(this);   // remove this line 


as well as  remove onitem click-


@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
        long id) {
    // TODO Auto-generated method stub

    View parentView = (View) view.getParent();
    TextView value1 = ((TextView) parentView.findViewById(R.id.title));

    String value = value1.getText().toString();

    if (value.equals("Post")) {
        Toast.makeText(this, "Post", 1000).show();
    }

    if (value.equals("Request For travelling")) {
        Toast.makeText(this, "Request for travelling", 1000).show();
    }

}



**just add convertview click listener** 


public class Notifcationadapter extends BaseAdapter {
    private static ArrayList<Notify> values;
    Context context;
    // List<RowItem> rowItems;
    ViewHolder holder = null;

    LinearLayout linear2;

    DataBaseManager dbManager = new DataBaseManager(context);
    ArrayList<Notify> notifies;

    public Notifcationadapter(Context context, ArrayList<Notify> notifies) {
        super();
        this.context = context;
        this.notifies = notifies;

    }

    /* private view holder class */
    private class ViewHolder {

        TextView txtTitle;
        TextView txtDesc;
        ImageView yesimage;
        ImageView noimage;
        TextView revresetime;
        LinearLayout linear2;

    }

    public View getView(int position, View convertView, ViewGroup parent) {

        LayoutInflater mInflater = (LayoutInflater) context
                .getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
        if (convertView == null) {
            convertView = mInflater.inflate(R.layout.notifcationlistitem, null);
            holder = new ViewHolder();
            holder.linear2 = (LinearLayout) convertView
                    .findViewById(R.id.linear2);
            holder.txtDesc = (TextView) convertView.findViewById(R.id.desc);
            holder.txtTitle = (TextView) convertView.findViewById(R.id.title);
            holder.yesimage = (ImageView) convertView
                    .findViewById(R.id.imageView1);
            holder.noimage = (ImageView) convertView
                    .findViewById(R.id.imageView2);
            holder.revresetime = (TextView) convertView
                    .findViewById(R.id.revresetime);

            convertView.setTag(holder);
        } else {
            holder = (ViewHolder) convertView.getTag();
        }

        // holder.txtTitle.setText("Title");
        String statustype = notifies.get(position).getNotificationType();

        if (statustype.equals("1")) {

            holder.txtDesc.setText(notifies.get(position)
                    .getNotificationDescrpiton());

            holder.revresetime.setText(Functions
                    .setLastSeenNotifcationTime(notifies.get(position)
                            .getNotificationDatetime()));
            holder.txtTitle.setText("Request For travelling");
            holder.yesimage.setVisibility(View.VISIBLE);
            holder.noimage.setVisibility(View.VISIBLE);

        }

        else {

            holder.txtDesc.setText(notifies.get(position)
                    .getNotificationDescrpiton());
            holder.txtTitle.setText("Post");
            holder.revresetime.setText(Functions
                    .setLastSeenNotifcationTime(notifies.get(position)
                            .getNotificationDatetime()));
            holder.yesimage.setVisibility(View.GONE);
            holder.noimage.setVisibility(View.GONE);
        }

        if (position % 2 == 0) {

            convertView.setBackgroundColor(Color.parseColor("#ffffff"));
        }

        else {
            convertView.setBackgroundColor(Color.parseColor("#f5f6f1"));

        }

        holder.yesimage.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub

                Toast.makeText(context, "Yes", 10000).show();
                holder.linear2.setVisibility(View.INVISIBLE);

            }
        });

        holder.noimage.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                Toast.makeText(context, "NO", 10000).show();
                holder.linear2.setVisibility(View.INVISIBLE);
            }
        });
convertView.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
              // write your code to redirect  to another activity like this way

           Intent i = new Intent(context,
                    Youractivity.class);

            context.startActivity(i);






            }
        });

        return convertView;
    }

    @Override
    public int getCount() {
        return notifies.size();
    }

    @Override
    public Object getItem(int position) {
        return notifies.get(position);
    }

    @Override
    public long getItemId(int position) {
        return position;
    }

}

      

-1


source







All Articles