在列表视图项目旁边添加缩略图

问题描述:

如何从每个列表视图项目的左侧添加可绘制文件夹中的缩略图图像?在列表视图项目旁边添加缩略图

我也想算的列表项目的数目,在我的TextView显示它们

任何帮助,将不胜感激! IM停留在这个很长一段时间

public class MainActivity extends Activity { 

    ArrayList<String> results = new ArrayList<String>(); 
    ArrayList<String> packageNames = new ArrayList<String>(); 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     getInstalledApps(this); 
     ArrayAdapter adapter = new ArrayAdapter<String>(this, 
       R.layout.activity_listview, results); 

     ListView listView = (ListView) findViewById(R.id.mobile_list); 
     listView.setAdapter(adapter); 

     listView.setOnItemClickListener(new OnItemClickListener() { 
      @Override 
      public void onItemClick(AdapterView<?> parent, View view, 
        int position, long id) { 
       String packageName = packageNames.get(position); 
       Intent intent = new Intent(
         android.provider.Settings.ACTION_APPLICATION_DETAILS_SETTINGS); 
       intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
       intent.setData(Uri.parse("package:" + packageName)); 
       startActivity(intent); 
      } 
     }); 
    } 

    private ArrayList<String> getInstalledApps(Context context) { 
     PackageManager packageManager = context.getPackageManager(); 
     List<PackageInfo> applist = packageManager.getInstalledPackages(0); 
     Iterator<PackageInfo> it = applist.iterator(); 
     while (it.hasNext()) { 
      PackageInfo pk = (PackageInfo) it.next(); 
      if ((pk.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0) { 
       Log.v("system app using internet = ", 
         "" + pk.applicationInfo.loadLabel(packageManager)); 
       continue; 
      } 

      if (PackageManager.PERMISSION_GRANTED == packageManager 
        .checkPermission(Manifest.permission.INTERNET, 
          pk.packageName) 
        || PackageManager.PERMISSION_GRANTED == packageManager 
          .checkPermission(
            Manifest.permission.READ_EXTERNAL_STORAGE, 
            pk.packageName)) { 
       results.add("" + pk.applicationInfo.loadLabel(packageManager)); 
       packageNames.add(pk.packageName); 
      } 
     } 

     Log.v("app using internet = ", results.toString()); 

     return results; 
    } 
} 
+0

更改适配器的'getView'方法。 – Rohit5k2

+0

嗨,你可以参考这个链接。 http://www.vogella.com/tutorials/AndroidListView/article.html – Nik

试试这个:

adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, results) { 
    @Override 
     public View getView(int position, View convertView, ViewGroup parent) { 
      TextView textView = (TextView) super.getView(position, convertView, parent); 
      //Change this to your drawable 
      Drawable myDrawable = getResources().getDrawable(android.R.drawable.ic_dialog_alert) 
      textView.setCompoundDrawables(myDrawable , null, null, null); 
      return textView; 
     } 
}; 
+0

我应该在哪里插入?或将其替换为?谢谢 – user5784363

+0

用这个代码代替'ArrayAdapter adapter = new ArrayAdapter (this, R.layout.activity_listview,results)'。 –

+0

我做了,它不做任何事,我没有看到任何图像。我需要在布局中使用imageview吗? – user5784363

如果您正在使用然后自定义适配器做到这一点在你的getView方法

@Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
    LayoutInflater inflater = (LayoutInflater) context 
     .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    View rowView = inflater.inflate(R.layout.row_layout, parent, false); 
    TextView textView = (TextView) rowView.findViewById(R.id.label); 
    ImageView imageView = (ImageView) rowView.findViewById(R.id.icon); 
    textView.setText(values[position]); 

    String s = values[position]; 
    imageView.setImageResource(R.drawable.no); 


    return rowView; 
    } 
+0

我在哪里把这段代码放在我的代码中? – user5784363