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();
}
}
리스트뷰 체크박스를만들고 눌렀을경우 지정한 액티비티로 리스트뷰를 보내려면 어떻게 해야하나요?