우선 신묘년 새해에 복 많이 받으시구요~
제가 공부하는 부분은 잠금 어플을 연구해 보고 있습니다.
그중에서도
설치되어 있는 어플을 리스트로 불러와서 체크를 하고 버튼을 클릭하면
다른 액티비티로 넘어가서 앞에서 체크한 부분만 리스트로 띄우고 싶습니다.
저의 코드는
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.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.AdapterView.OnItemClickListener;
public class Launcher123 extends Activity {
boolean isChecked;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main2);
//이 버튼을 눌렀을때 다른 액티비티로 넘겨서 리스트뜨게 하려고합니다.
Button list_add = (Button) findViewById(R.id.list_add);
list_add.setOnClickListener(new Button.OnClickListener() { public
void onClick(View v) {
} });
//취소
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, test1.class);
startActivity(intent);
finish();
}
});
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);
ListView lv = (ListView) findViewById(R.id.launcherList);
lv.setAdapter(adapter);
// 체크모드
lv.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
lv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
/*
* ResolveInfo temp = pkgAppsList.get(position); Intent i = new
* Intent(); i.setClassName(temp.activityInfo.packageName,
* temp.activityInfo.name); startActivity(i);
*/
}
});
}
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);
// 체크박스 쓸수잇도록
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;
}
}
}
이런 식으로 하였는데 조언 부탁드립니다~!



