2013-07-12 3 views
0

안녕하세요. 샘플 프로젝트를하고 있는데, listitem과 같은 문제가있어 일부 정크 값을 보여줍니다. 해결 방법을 모릅니다. 아무도 나를 도울 수 있습니까?Listview에 정크 값이 표시됩니다.

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); 

} 
} 

화면이 무엇 ListView가 표시되고있는 것은 정크하지만 객체 AppInfo의 참조의 인간 표현하지

http://i.stack.imgur.com/w4Axi.png

답변

1

샷 참조 :

이 내 활동이다. 문제를 해결할 수있는 두 가지 방법이 있습니다. ArrayList<AppInfo> 대신 ArrayList<String>ArrayAdapter에 전달하거나 ArrayAdapter에서 getView을 재정의 할 수 있습니다.

@Luksprog으로

당신은 또한 pname

+0

http://developer.android.com/reference/android/widget/ArrayAdapter.html를 참조하십시오 * 나는 추측하고있다). – Luksprog

+0

감사합니다 @ Luksprog 당신이 맞습니다 :) – Blackbelt

+0

주의! @toString()은 사용자 인터페이스 용 텍스트를 제공하지 않습니다. 객체에 대한 사람이 읽을 수있는 정보를 제공해야합니다. toString은 로깅 및 디버깅을위한 것입니다. – Mirco

0

귀하의 스크린 샷을 반환하기 위해 AppInfo.toString()을 대체 할 수 있습니다 (아래 자신의 의견을 참조) 제안 편집은 APPINFO의 각 객체의 toString 값을 보여줍니다. AppInfo는 원하는 문자열로 구조를 표시하기 위해 toString을 대체해야합니다. 은`목표 값을 반환 AppInfo` 클래스합니다 (* PNAME의`toString() '메서드를 재정의, 또는 세 번째 쉬운 방법 -

당신은 문제 *를 해결하는 방법은 두 가지가 *