У меня есть установленные приложения в одном действии, у меня есть другое действие, в котором перечислены только те приложения, которые были проверены в первом действии. Есть три проблемы: Кулак это показывает что-то подобное во второй активности Запуск активности из пользовательского списка
Это показывает приложения, как это вместо того, чтобы их имена и иконки. Что я могу сделать для этого?
Второй, как вы можете видеть, показывает дубликаты. Я не имею никакого флажок, так что я не знаю, как удалить приложение, если приложение выбрано дважды в первой активности
Третьем Я использую это, чтобы начать деятельность, выбранной в изображении выше
Intent newIntent = getPackageManager().getLaunchIntentForPackage(getPackageName());
startActivity(newIntent);
Она просто начинает мое первое действие. Что мне нужно написать в пространстве getPackageName()?
При необходимости я отправлю код для первого и второго действия. Спасибо.
Вот мой AppInfoAdapter
public class AppInfoAdapter extends BaseAdapter {
private Context mContext;
private List<?> mListAppInfo;
private PackageManager mPackManager;
public AppInfoAdapter(Context c, List<?> list, PackageManager pm) {
mContext = c;
mListAppInfo = list;
mPackManager = pm;
}
@Override
public int getCount() {
return mListAppInfo.size();
}
@Override
public Object getItem(int position) {
return mListAppInfo.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// get the selected entry
ApplicationInfo entry = (ApplicationInfo) mListAppInfo.get(position);
// reference to convertView
View v = convertView;
// inflate new layout if null
if(v == null) {
LayoutInflater inflater = LayoutInflater.from(mContext);
v = inflater.inflate(R.layout.lvrowlayout, null);
}
// load controls from layout resources
ImageView ivAppIcon = (ImageView)v.findViewById(R.id.ivIcon);
TextView tvAppName = (TextView)v.findViewById(R.id.tvName);
TextView tvPkgName = (TextView)v.findViewById(R.id.tvPack);
// set data to display
ivAppIcon.setImageDrawable(entry.loadIcon(mPackManager));
tvAppName.setText(entry.loadLabel(mPackManager));
tvPkgName.setText(entry.packageName);
// return view
return v;
}
Здесь islvrowlayout
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="?android:attr/listPreferredItemHeight"
android:padding="5dip"
>
<ImageView
android:id="@+id/ivIcon"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_marginRight="5dip"
android:scaleType="center"
/>
<LinearLayout
android:orientation="vertical"
android:layout_width="0dip"
android:layout_height="fill_parent"
android:layout_weight="1"
>
<TextView
android:id="@+id/tvName"
android:layout_width="fill_parent"
android:layout_height="0dip"
android:layout_weight="1"
android:gravity="center_vertical"
/>
<TextView
android:id="@+id/tvPack"
android:layout_width="fill_parent"
android:layout_height="0dip"
android:layout_weight="1"
android:singleLine="true"
android:ellipsize="marquee"
/>
</LinearLayout>
</LinearLayout>
Я добавил адаптер –
Да, я это понимаю. Как я уже сказал, приложения хранятся в ArrayList A, который передается через пакет и доступен в другой активности. Так что я должен установить a.appName = (textview) и a.icon = (ImageView)? –
Можете ли вы разместить lvrowlayout.xml? – akadouri