마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안드로이드 리스트뷰 체크박스 클릭시 다른 액티비티로 리스트뷰 보내는방법?

0 추천
 
package com.github.florent37.materialviewpager.sample.adapter

import android.content.Context;
import android.content.Intent;
import android.graphics.drawable.Drawable;
import android.media.MediaPlayer;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.ImageView;
import android.widget.TextView;

import com.github.florent37.materialviewpager.sample.MainActivity;
import com.github.florent37.materialviewpager.sample.R;
import com.github.florent37.materialviewpager.sample.sound.DailySoundActivity;

import java.util.ArrayList;
import java.util.List;
import java.util.Locale;

import static com.github.florent37.materialviewpager.sample.R.id.PlayPauseButton;

public class ListViewAdapter extends BaseAdapter {

    //MainActivity mainActivity = new MainActivity();

    //CustomMediaPlayer customMediaPlayer = new CustomMediaPlayer();
    // Adapter에 추가된 데이터를 저장하기 위한 ArrayList
    Context mContext;
    LayoutInflater inflater;
    MediaPlayer mediaPlayer;
    private List<ListViewItem> listViewItems = null;
    private ArrayList<ListViewItem> listViewItemList = new ArrayList<ListViewItem>() ;
    ListViewItem listViewItem;

    // ListViewAdapter의 생성자
    public ListViewAdapter(Context context, List<ListViewItem> listViewItems) {
        mContext = context;
        this.listViewItems = listViewItems;
        inflater = LayoutInflater.from(mContext);
        this.listViewItemList = new ArrayList<ListViewItem>();
        this.listViewItemList.addAll(listViewItems);
    }
    public class ViewHolder {
        TextView titleStr;
        TextView descStr;
    }

    // Adapter에 사용되는 데이터의 개수를 리턴. : 필수 구현
    @Override
    public int getCount() {
        return listViewItems.size() ;
    }

    // position에 위치한 데이터를 화면에 출력하는데 사용될 View를 리턴. : 필수 구현
    @Override
    public View getView(final int position, View convertView, ViewGroup parent) {
        //final int pos = position;
        //final Context context = parent.getContext();
        final ViewHolder holder;
        // "listview_item" Layout을 inflate하여 convertView 참조 획득.
        if (convertView == null) {
            //LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
           // convertView = inflater.inflate(R.layout.listview_item, parent, false);
            holder = new ViewHolder();
            convertView = inflater.inflate(R.layout.listview_item, null);
            holder.titleStr = (TextView) convertView.findViewById(R.id.textView1);
            holder.descStr = (TextView) convertView.findViewById(R.id.textView2);
            //holder.checkBox = (CheckBox) convertView.findViewById(R.id.checkBox);
            convertView.setTag(holder);
        } else {
            holder = (ViewHolder) convertView.getTag();
        }
        holder.titleStr.setText(listViewItems.get(position).getTitle());
        holder.descStr.setText(listViewItems.get(position).getDesc());
        //holder.checkBox.setOnCheckedChangeListener(mStarCheckedChanceChangeListener);

        // 화면에 표시될 View(Layout이 inflate된)으로부터 위젯에 대한 참조 획득
        //ImageView iconImageView = (ImageView) convertView.findViewById(R.id.imageView1) ;
        //TextView titleTextView = (TextView) convertView.findViewById(R.id.textView1) ;
        //TextView descTextView = (TextView) convertView.findViewById(R.id.textView2) ;

        // Data Set(listViewItemList)에서 position에 위치한 데이터 참조 획득
        //ListViewItem listViewItem = listViewItemList.get(position);

        //Button button = (Button) convertView.findViewById(R.id.Button1);

        // 아이템 내 각 위젯에 데이터 반영
        //iconImageView.setImageDrawable(listViewItem.getIcon());
        //titleTextView.setText(listViewItem.getTitle());
       // descTextView.setText(listViewItem.getDesc());

        return convertView;
    }

    // 지정한 위치(position)에 있는 데이터와 관계된 아이템(row)의 ID를 리턴. : 필수 구현
    @Override
    public long getItemId(int position) {
        return position ;
    }

    // 지정한 위치(position)에 있는 데이터 리턴 : 필수 구현
    @Override
    public ListViewItem getItem(int position) {
        return listViewItems.get(position) ;
    }

    // 아이템 데이터 추가를 위한 함수. 개발자가 원하는대로 작성 가능.
    /* public void addItem(String title, String desc) {
        ListViewItem item = new ListViewItem();

        //item.setIcon(icon);
        item.setTitle(title);
        item.setDesc(desc);

        listViewItemList.add(item);
    }  */

    public void filter(String charText) {
        charText = charText.toLowerCase(Locale.getDefault());
        listViewItems.clear();
        if (charText.length() == 0) {
            listViewItems.addAll(listViewItemList);
        }
        else
        {
            for (ListViewItem wp : listViewItemList)
            {
                if (wp.getTitle().toLowerCase(Locale.getDefault()).contains(charText))
                {
                    listViewItems.add(wp);
                }
            }
        }
        notifyDataSetChanged();
    }
}

 

 

리스트뷰 체크박스를만들고 눌렀을경우 지정한 액티비티로 리스트뷰를 보내려면 어떻게 해야하나요? 

b1anker (140 포인트) 님이 2017년 2월 16일 질문

1개의 답변

0 추천
준비물 : 데이터 리스트 2개 리스트뷰 2개

1.리스트뷰 1에 데이터1을 뿌려줌

2.리스트뷰1 어뎁터 겟뷰에서 체크박스이벤트 등록

3. 이벤트 실행시 해당 포지션의 데이터 제거

4. 제거하면서 데이터2에 add

5 리스트뷰2에 데이터 2뿌려줌!
익명사용자 님이 2017년 2월 16일 답변
...