java - Listview 显示垃圾值

标签 java android listview android-listview android-widget

您好,我正在做示例项目,因为我遇到了像 listitem 显示一些垃圾值这样的问题。不知道怎么解决。谁能帮帮我。

这是我的 Activity :

public class MainActivity extends Activity {
ListView app_List;
private ArrayList<AppInfo> infoList;
private ArrayAdapter<AppInfo> adpt;
@SuppressWarnings("unchecked")
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_main);
    app_List = (ListView)findViewById(R.id.listView1);
    infoList = getListOfUserInstalledApps();
    }

   private ArrayList<AppInfo> getListOfUserInstalledApps() {
    // TODO Auto-generated method stub
    List<PackageInfo> apps = getPackageManager().getInstalledPackages(0);
    System.out.println("No. of applications installed on the device: "+apps.size());
    ArrayList<AppInfo> infoList1 = new ArrayList<AppInfo>();
    for(int i=0;i<apps.size();i++) {        
        PackageInfo p = apps.get(i);        
        /*if ((!getSysPackages) && (p.versionName == null)) {      
            continue ;        }*/

        AppInfo info = new AppInfo();
        //info.appname = p.applicationInfo.loadLabel(getPackageManager()).toString();
        info.pname = p.packageName;
        System.out.println("application name: "+info.pname);
        //info.pname = p.packageName;
        infoList1.add(info);

    }
    return infoList1;
}
static class AppInfo {
    //private String appname = "";    
    private String pname = "";    
    //private String versionName = "";    
    //private int versionCode = 0;    
    //private Drawable icon;

}


@Override
protected void onResume() {
    // TODO Auto-generated method stub
    super.onResume();
    adpt =  new ArrayAdapter<AppInfo>(this,android.R.layout.simple_list_item_1, infoList);
    app_List.setAdapter(adpt);

}
}

引用屏幕截图

/image/w4Axi.png

最佳答案

什么是ListView显示的不是垃圾,而是对象引用的人类表示AppInfo 。您有两种方法可以解决您的问题。您可以通过ArrayList<String>而不是ArrayList<AppInfo>ArrayAdapter ,或覆盖getView来自ArrayAdapter

编辑

@Luksprog建议(请参阅下面的评论)您也可以覆盖 AppInfo.toString()为了返回pname

关于java - Listview 显示垃圾值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17609346/

相关文章:

java - RecyclerView不显示任何项目

android - 电话休眠时停止服务

android listview 滚动到顶部

Android News App - 不要一次下载所有 json

android - 当我们可以对静态变量做同样的事情时,为什么要使用 getTag/setTag

java - 在 Java 中捕获(捕获)窗口中的鼠标光标

java - 当我运行此代码时,它只是在播放音频时卡住。但是,我希望动画与音频同时运行。我怎样才能做到这一点?

java - Java 线程二叉搜索树

android - context.openFileOutput() 与 file.createNewFile() 相比?

Android 设计支持库未编译