Android应用程序列表器
我创建了一个应用程序,希望将所有已安装的应用程序都列在自定义列表视图中。不幸的是,活动一开始就崩溃了!谁能帮我一下吗!我找不到错误,因为它没有给出任何错误 AppActivity.javaAndroid应用程序列表器,android,android-layout,android-intent,Android,Android Layout,Android Intent,我创建了一个应用程序,希望将所有已安装的应用程序都列在自定义列表视图中。不幸的是,活动一开始就崩溃了!谁能帮我一下吗!我找不到错误,因为它没有给出任何错误 AppActivity.java package com.ex.layout; import java.util.List; import android.app.Activity; import android.content.pm.PackageInfo; import android.os.Bundle; import androi
package com.ex.layout;
import java.util.List;
import android.app.Activity;
import android.content.pm.PackageInfo;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListView;
import android.widget.Toast;
public class AppActivity extends Activity implements OnItemClickListener{
String[] name = getaAppName();
String[] packs = getPackName();
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ListView li = (ListView) findViewById(R.id.applist);
ListviewAdapet list = new ListviewAdapet(this, name, packs);
li.setAdapter(list);
li.setOnItemClickListener(this);
}
public void onItemClick(AdapterView<?> arg0, View arg1, int position, long id) {
// TODO Auto-generated method stub
Toast.makeText(this,"Title => "+name[position]+"=> n Description"+packs[position], Toast.LENGTH_SHORT).show();
}
public String[] getaAppName() {
List<PackageInfo> apps = getPackageManager().getInstalledPackages(0);
String appname[] = new String[apps.size()];
for (int number = 0; number < apps.size(); number++) {
PackageInfo pack = apps.get(number);
appname[number] = pack.applicationInfo.loadLabel(getPackageManager()).toString();
}
return appname;
}
public String[] getPackName(){
List<PackageInfo> apps = getPackageManager().getInstalledPackages(0);
String packnames[] = new String[apps.size()];
for (int i = 0; i < apps.size(); i++) {
PackageInfo pack = apps.get(i);
packnames[i] = pack.packageName;
}
return packnames;
}
}
请帮帮我!
谢谢。您在代码中犯了两个严重错误 错误1
String[] name = getaAppName();
String[] packs = getPackName();
您在onCreate之前调用这两个方法。请记住getPackageManager
需要活动上下文。如果在onCreate之前定义它,您将得到该死的NullPointerException
所以改变你的代码
从
到
错误2
public int getCount() {
// TODO Auto-generated method stub
return 0;
}
如果在此处返回0,将得到空列表
所以把它改成
public int getCount() {
return packname.length;
}
您在代码中犯了两个严重错误 错误1
String[] name = getaAppName();
String[] packs = getPackName();
您在onCreate之前调用这两个方法。请记住getPackageManager
需要活动上下文。如果在onCreate之前定义它,您将得到该死的NullPointerException
所以改变你的代码
从
到
错误2
public int getCount() {
// TODO Auto-generated method stub
return 0;
}
如果在此处返回0,将得到空列表
所以把它改成
public int getCount() {
return packname.length;
}
你在应用程序清单中有必要的权限吗?我是android编程的新手!所以我不知道什么是堆栈跟踪!如何获取堆栈跟踪。m使用Eclipse每次运行项目时,我都会收到消息布局已停止。我没有授予权限。我有另一个项目做同样的事情,但我力不给任何许可。这个项目很简单,我将安装的应用程序作为一个列表,并将其指向一个标准的listview。不是定制的。在这个项目中,我想定制ListVIEW。也许你应该考虑到你想做的是超出你的深度并重新考虑。首先,你需要一个更温和更简单的练习,了解Android,了解Eclipse,Android SDK,Java。从其他地方复制/粘贴不会有帮助。我不能重新考虑和改变我所做的事情,因为这是我从大学得到的一个研究项目。我读了很多教程,我的脑子里都快崩溃了(你在应用程序清单中有必要的权限吗?我是android编程的新手!所以我不知道什么是堆栈跟踪!我如何才能获得堆栈跟踪。我使用Eclipse每次运行项目时,我都会发现消息布局已停止。我没有授予权限。我有另一个项目做了同样的事情,但我无法给出任何p。)这个项目是一个简单的项目,我把安装的应用程序作为一个列表,并将它直接应用到一个标准的ListVIEW中,而不是一个定制的。在这个项目中,我想定制ListVIEW。也许你应该考虑到你想做的是在你的深度之外,重新考虑。理解Android,理解Eclipse,Android SDK,Java。从其他地方复制/粘贴不会有帮助。我不能重新考虑和改变我所做的事情,因为这是我从大学得到的一个研究项目。我读了很多教程,我的脑子里都快崩溃了(我更正了您指出的错误,并清理了项目。然后,当我运行项目时,主活动刚刚启动,列表未显示。main.xml文件中定义了一个textview,它是唯一显示的内容。:(我更正了您指出的错误,并清理了项目。然后,当我运行项目时,主活动刚刚启动,列表未显示。main.xml文件中定义了一个textview,它是唯一显示的内容。:(