final Intent mainIntent=new Intent(Intent.ACTION_MAIN,null);
mainIntent.addCategory(Intent.CATEGORY_LAUNCHER) ;
final PackageManager pm = getApplicationContext().getPackageManager();
ArrayList<ResolveInfo> listP= (ArrayList<ResolveInfo>) pm.queryIntentActivities(mainIntent, 0);
//Drawable iconApp = resolveInfo.activityInfo.loadIcon(getPackageManager());
ApplicationAdapter adapter = new ApplicationAdapter(this, listP);
adapter.addListener(this);
ListView list = (ListView)findViewById(R.id.list);
list.setAdapter(adapter);
此代码显示所有可用的应用程序,但我想处理结果。在每一行你都有com.android.*
,这是我想要削减的部分。对字符串进行操作以删除前缀
问题是,当我试图使用substring(10)
例如它不会改变结果。
我试过的方式和登录我成功的子字符串,但是当我在屏幕上显示出来,它只是告诉我他所有的按钮 另一个布局,我几乎与此代码我用日志显示得到它正是我想要把在屏幕上但只是一个黑色的板,而我得到的日志 正确的结果我看不到的原因
public void onCreatebis() {
setContentView(R.layout.main);
final Intent mainIntent=new Intent(Intent.ACTION_MAIN,null);
mainIntent.addCategory(Intent.CATEGORY_LAUNCHER) ;
final PackageManager pm = getApplicationContext().getPackageManager();
ArrayList<ResolveInfo> listP= (ArrayList<ResolveInfo>) pm.queryIntentActivities(mainIntent, 0);
final int trimLength = "com.android.".length();
ArrayList<String> maliste = new ArrayList();
int size=listP.size();
size=maliste.size();
//String []maliste=new String[listP.size()];
// Loop over each item.
for (ResolveInfo info : listP) {
// Get the (full, qualified) package name.
String packag = info.activityInfo.applicationInfo.packageName;
// Now, trim it with substring and the trim length.
String trimmed = packag.substring(trimLength);
for(int i=0;i<maliste.size();i++){
maliste.set(i, trimmed);
}
Log.v("trimmed", trimmed);
// [ do whatever you want with the trimmed name ]
}
ArrayAdapter<String> adapter2 = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, maliste);
ListView list = (ListView)findViewById(R.id.list);
list.setAdapter(adapter2);
你叫什么子字符串(10)*在*上?我没有看到您提供的示例中的任何字符串操作代码。 – 2013-03-11 15:56:24