请写一个安卓桌面launcher代码
时间: 2023-06-11 19:04:37 浏览: 51
好的,以下是一个简单的安卓桌面 launcher 代码示例:
```java
public class LauncherActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_launcher);
// 获取应用列表
List<ApplicationInfo> apps = getPackageManager().getInstalledApplications(0);
// 初始化应用列表视图
ListView listView = (ListView) findViewById(R.id.listView);
AppListAdapter adapter = new AppListAdapter(this, apps);
listView.setAdapter(adapter);
// 处理应用列表项点击事件
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
ApplicationInfo app = (ApplicationInfo) parent.getItemAtPosition(position);
Intent launchIntent = getPackageManager().getLaunchIntentForPackage(app.packageName);
startActivity(launchIntent);
}
});
}
private class AppListAdapter extends ArrayAdapter<ApplicationInfo> {
private LayoutInflater mInflater;
public AppListAdapter(Context context, List<ApplicationInfo> apps) {
super(context, R.layout.app_list_item, apps);
mInflater = LayoutInflater.from(context);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = convertView;
if (view == null) {
view = mInflater.inflate(R.layout.app_list_item, null);
}
ApplicationInfo app = getItem(position);
TextView nameTextView = (TextView) view.findViewById(R.id.nameTextView);
ImageView iconImageView = (ImageView) view.findViewById(R.id.iconImageView);
nameTextView.setText(app.loadLabel(getPackageManager()));
iconImageView.setImageDrawable(app.loadIcon(getPackageManager()));
return view;
}
}
}
```
这里使用了一个 ListView 来显示已安装的应用列表,点击列表项可以启动该应用。需要注意的是,需要在 AndroidManifest.xml 文件中声明该 Activity,并设置为默认启动项:
```xml
<activity android:name=".LauncherActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
```