Search code examples
javaandroidlistviewandroid-intentadapter

How can i go to an other activity when i click button of list view?


I want to Intent two different activity(FreeLine, MoveCircle)

if i click that start button it will always start FreeLine

if i click that start button it will always start FreeLine

How to separate these intents..?

    @Override
    public View getView(final int position, View convertView, ViewGroup parent) {
        final Context context = parent.getContext();

        if (convertView == null) {
            LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            convertView = mInflater.inflate(mLayout, parent, false);
        }

        ImageView img = (ImageView)convertView.findViewById(R.id.img);
        img.setImageResource(mDatas.get(position).Img);

        TextView txt = (TextView)convertView.findViewById(R.id.text);
        txt.setText(mDatas.get(position).Name);

        TextView txt2 = (TextView)convertView.findViewById(R.id.desc);
        txt2.setText(mDatas.get(position).Des);

        Button btn = (Button)convertView.findViewById(R.id.btn);
        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //How to separate these two intents???
                Intent FreeLineIntent = new Intent(v.getContext(), FreeLine.class);
                mContext.startActivity(FreeLineIntent);
                Intent MoveCircleIntent = new Intent(v.getContext(), MoveCircle.class);
                mContext.startActivity(MoveCircleIntent);
            }
        });
        return convertView;
    }

Solution

  • You can do that by get the text :-

    Button btn = (Button)convertView.findViewById(R.id.btn);
                    btn.setOnClickListener(new View.OnClickListener() {
                        @Override
                        public void onClick(View v) {
                            //How to separate these two intents???
                            String txtTitle = txt2.getText().toString();
                            switch (txtTitle){
                                case "the first title  of your text":
                                    Intent FreeLineIntent = new Intent(v.getContext(), FreeLine.class);
                                    mContext.startActivity(FreeLineIntent);
                                    break;
                                case "the second title  of your text":
                                    Intent MoveCircleIntent = new Intent(v.getContext(), MoveCircle.class);
                                    mContext.startActivity(MoveCircleIntent);
                                    break;
                                    
                            }
                           
                          
                        }
                    });