package kr.co.Applist;
import java.util.List;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
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.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.AdapterView.OnItemClickListener;
public class Applist extends Activity {
/** Called when the activity is first created. */
int bb;
int bbb;
String label[] = new String[500];
String cc = "알람";
String dd;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
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);
PackageManager pm = getPackageManager();
int len = pkgAppsList.size();
for (int i = 0; i<len; i++){
ResolveInfo in = pkgAppsList.get(i);
CharSequence labelSeq = in.loadLabel(pm);
//label = labelSeq != null ? labelSeq.toString() : in.activityInfo.name;
label[i] = labelSeq.toString();
dd = label[i];
if(cc == dd){
Toast.makeText(this, dd, Toast.LENGTH_SHORT).show();
bb = i;
}
}
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);
ResolveInfo temp = child.get(bb);
icon.setImageDrawable(temp.loadIcon(getPackageManager()));
name.setText(temp.loadLabel(getPackageManager()));
return convertView;
}
}
}
위에 코드 보시면 cc라는 String값을 dd = label[i]; 이부분의 dd값과 비교하여 토스트를 띄우고 싶습니다.
상식적으로는 되는게 맞다고 생각하는데.. 돌려보니 계속 저 조건문을 무시하는것같습니다.ㅠㅠ
도와주세요!!ㅠㅠ
제가 최종적으로 원하는 건 cc값과 같은 설치된 어플리스트중 label과 비교하여 한가지만 뽑아내는게 목적입니다..ㅠㅠ
고수님들 도와주세요!!ㅠㅠ
if(cc == dd)말구요,
if(cc.equals(dd)) 써보시겠어요?