리스트부분 공부하는데 초보다 보니 너무 어렵네요.ㅠ
설치된 어플리케이션을 리스트로 뽑아와서 그 리스트 중에서 체크를 한 상태로 저장을 하려고 하는데요
어떻게해야하나요?? 조언 부탁드립니다.ㅠ
그리구요 리스트에서 보면 arrayList와 arrayAdapter를 같이 사용하던데...
ResolveInfo는 잘 안쓰는 건가요???
밑에는 제 소스입니다..
import java.util.List;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.pm.ResolveInfo;
import android.os.Bundle;
import android.util.SparseBooleanArray;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
public class Launcher123 extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main2);
Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);
final List<ResolveInfo> pkgAppsList = getPackageManager()
.queryIntentActivities(mainIntent, 0);
MyAdapter adapter = new MyAdapter(this, R.layout.listitem, pkgAppsList);
final ListView lv = (ListView) findViewById(R.id.launcherList);
lv.setAdapter(adapter);
// 체크모드 멀티플
lv.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
Button back_tab = (Button) findViewById(R.id.back_tap);
back_tab.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent(Launcher123.this, Launcher1234.class);
startActivity(intent);
// lv.setAdapter(new ArrayAdapter<String>(this,
// android.R.layout.simple_list_item_1, items));
finish();
}
});
}
public class MyAdapter extends ArrayAdapter<ResolveInfo> {
List<ResolveInfo> child;
public MyAdapter(Context context, int textViewResourceId,
List<ResolveInfo> objects) {
super(context, textViewResourceId, objects);
child = objects;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return child.size();
}
@Override
public ResolveInfo getItem(int position) {
// TODO Auto-generated method stub
return child.get(position);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
LayoutInflater li = (LayoutInflater) getApplicationContext()
.getSystemService(LAYOUT_INFLATER_SERVICE);
convertView = li.inflate(R.layout.listitem, null);
}
// 이미지뷰 쓸수잇도록
ImageView icon = (ImageView) convertView.findViewById(R.id.ivIcon);
// 텍스트 쓸수잇도록
TextView name = (TextView) convertView.findViewById(R.id.tvName);
// 체크박스 쓸수잇도록
final CheckBox checkbox = (CheckBox) convertView
.findViewById(R.id.radio);
ResolveInfo temp = child.get(position);
// 아이콘보이게
icon.setImageDrawable(temp.loadIcon(getPackageManager()));
// 텍스트파일이름 불러오기
name.setText(temp.loadLabel(getPackageManager()));
checkbox.setChecked(((ListView) parent).isItemChecked(position));
checkbox.setFocusable(false);
checkbox.setClickable(false);
return convertView;
}
}
}



