2013-07-12 2 views
0

У меня есть установленные приложения в одном действии, у меня есть другое действие, в котором перечислены только те приложения, которые были проверены в первом действии. Есть три проблемы: Кулак это показывает что-то подобное во второй активности HelloЗапуск активности из пользовательского списка

Это показывает приложения, как это вместо того, чтобы их имена и иконки. Что я могу сделать для этого?

Второй, как вы можете видеть, показывает дубликаты. Я не имею никакого флажок, так что я не знаю, как удалить приложение, если приложение выбрано дважды в первой активности

Третьем Я использую это, чтобы начать деятельность, выбранной в изображении выше

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> 

ответ

0

Вы используете ListView? Не могли бы вы разместить свой адаптер? Похоже, вы не переопределить счет адаптера в ListView в в или макет, в котором вы можете установить картинку и т.д.

Вы можете создать макет для строки, как этот

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="horizontal" > 

    <ImageView 
    .... /> 

    <TextView 
    .... /> 

</LinearLayout> 

, а затем в вашем ListView Adapter

@Override 
public View getView(final int position, View convertView, ViewGroup parent) { 
     View v = convertView; 
     LayoutInflater vi (LayoutInflater)getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     v = vi.inflate(R.layout.custom_row, null); 

//Set image and text view here 

} 
+0

Я добавил адаптер –

+0

Да, я это понимаю. Как я уже сказал, приложения хранятся в ArrayList A, который передается через пакет и доступен в другой активности. Так что я должен установить a.appName = (textview) и a.icon = (ImageView)? –

+0

Можете ли вы разместить lvrowlayout.xml? – akadouri

Смежные вопросы