package com.example.secondarylaunchertest;
import androidx.appcompat.app.AppCompatActivity;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
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 java.util.ArrayList;
import java.util.List;
public class AppsListActivity extends Activity {
private PackageManager mPackageManager;
private List<AppDetail> mApps;
private ListView mList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_apps_list);
// Load app information
loadApps();
// Craete list view
loadListView();
// Register the list listner
addClickListener();
}
private void loadApps() {
mPackageManager = getPackageManager();
mApps = new ArrayList<AppDetail>();
Intent appintent = new Intent();
appintent.setAction(Intent.ACTION_MAIN);
appintent.addCategory(Intent.CATEGORY_LAUNCHER);
List<ResolveInfo> availableActivities = mPackageManager
.queryIntentActivities(appintent, 0);
// Add app information in the list
for (ResolveInfo ri : availableActivities) {
AppDetail app = new AppDetail();
app.label = ri.loadLabel(mPackageManager);
app.name = ri.activityInfo.packageName;
app.icon = ri.activityInfo.loadIcon(mPackageManager);
// Add app list.
mApps.add(app);
}
}
private void loadListView() {
mList = (ListView) findViewById(R.id.apps_list);
ArrayAdapter<AppDetail> adapter = new ListAdapter(this,
R.layout.list_item, mApps);
mList.setAdapter(adapter);
}
private void addClickListener() {
mList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> av, View v, int pos, long id) {
Intent i = mPackageManager.getLaunchIntentForPackage(mApps
.get(pos).name.toString());
// Start the selected activity
AppsListActivity.this.startActivity(i);
}
});
}
private final class ListAdapter extends ArrayAdapter<AppDetail> {
private ListAdapter(Context context, int textViewResourceId,
List<AppDetail> objects) {
super(context, textViewResourceId, objects);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = getLayoutInflater().inflate(R.layout.list_item,
null);
}
ImageView appIcon = (ImageView) convertView
.findViewById(R.id.item_app_icon);
appIcon.setImageDrawable(mApps.get(position).icon);
TextView appLabel = (TextView) convertView
.findViewById(R.id.item_app_label);
appLabel.setText(mApps.get(position).label);
TextView appName = (TextView) convertView
.findViewById(R.id.item_app_name);
appName.setText(mApps.get(position).name);
return convertView;
}
}
private class AppDetail {
CharSequence label;
CharSequence name;
Drawable icon;
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
SecondaryLauncherTest.zip (31个子文件)
SecondaryLauncherTest
proguard-rules.pro 750B
src
test
java
com
example
secondarylaunchertest
ExampleUnitTest.java 394B
androidTest
java
com
example
secondarylaunchertest
ExampleInstrumentedTest.java 780B
main
res
mipmap-xxxhdpi
ic_launcher.png 10KB
ic_launcher_round.png 16KB
drawable
ic_launcher_background.xml 5KB
mipmap-hdpi
ic_launcher.png 4KB
ic_launcher_round.png 5KB
drawable-v24
ic_launcher_foreground.xml 2KB
values
colors.xml 378B
themes.xml 828B
strings.xml 83B
values-night
themes.xml 828B
mipmap-xxhdpi
ic_launcher.png 8KB
ic_launcher_round.png 12KB
mipmap-mdpi
ic_launcher.png 3KB
ic_launcher_round.png 3KB
mipmap-xhdpi
ic_launcher.png 5KB
ic_launcher_round.png 7KB
mipmap-anydpi-v26
ic_launcher_round.xml 272B
ic_launcher.xml 272B
layout
list_item.xml 1KB
activity_main.xml 869B
activity_apps_list.xml 424B
activity_secondary_launcher.xml 1KB
java
com
example
secondarylaunchertest
SecondaryLauncherActivity.java 588B
AppsListActivity.java 4KB
MainActivity.java 346B
AndroidManifest.xml 1KB
.gitignore 6B
build.gradle 1KB
libs
共 31 条
- 1
资源评论
Aaron-Wistron
- 粉丝: 165
- 资源: 6
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功