さて、まず最初に、約 2 日前に Java を学び始めました (しようとしています)。インストールされているすべてのアプリケーション (activityInfo.loadLabel) を一覧表示するアプリケーションを作成しようとしていて、項目のクリック (activityInfo.packageName) でアプリケーションを起動したいのですが、これらを AppItems のリストに保存しています。
class AppItem{
String _appname;
public String getAppname(){return _appname;};
public void setAppname(String value){_appname = value;};
String _app;
public String getApp(){ return _app; };
public void setApp(String value){_app = value; };
}
リストビューに文字列の配列を追加できます。しかし、リストビューで(いわば)同じ行に2つの異なる値を追加するにはどうすればよいですか-Javaで。私の質問が理解できない場合は教えてください - そして私は可能な限り詳しく説明しようとします
ここに私のコードがあります:
ArrayList<AppItem> apps;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
final Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);
final List<ResolveInfo> pkgAppsList = getPackageManager().queryIntentActivities(mainIntent, 0);
AppItem appItem = new AppItem();
for (ResolveInfo applicationInfo : pkgAppsList) {
appItem._appname = (String) applicationInfo.activityInfo.loadLabel(getPackageManager());
appItem._app= applicationInfo.activityInfo.packageName;
apps.add(appItem);
}
ArrayAdapter<AppItem> adapter = new ArrayAdapter<AppItem>(this,android.R.layout.simple_list_item_1,apps);
ListView listView = new ListView(this);
listView.setAdapter(adapter);
setContentView(listView);
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
String item = ((TextView)view).getText().toString();
Toast.makeText(getBaseContext(), item, Toast.LENGTH_LONG).show();
}
});
}
class AppItem{
String _appname;
public String getAppname(){return _appname;};
public void setAppname(String value){_appname = value;};
String _app;
public String getApp(){ return _app; };
public void setApp(String value){_app = value; };
}
または使用する代替手段はありますか
Intent LaunchIntent = getPackageManager().getLaunchIntentForPackage("com.package.address");
startActivity(LaunchIntent);
ラベル名からアプリケーションを起動できますか?