Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/191.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Listview适配器在片段中提供空指针异常_Android_File_Listview - Fatal编程技术网

Android Listview适配器在片段中提供空指针异常

Android Listview适配器在片段中提供空指针异常,android,file,listview,Android,File,Listview,这里使用的代码是我从另一个片段类中提取出来的,它工作得非常好 我想从data/data/目录中提取文件列表,并在列表视图中显示它们 抛出的错误在第58行。lv.setAdapter 我已经从Eclipse切换到Android studio,所以这可能与此有关 日志: 02-04 12:21:48.535 7433-7433/com.super8bit.singoffbeta E/AndroidRuntime﹕ FATAL EXCEPTION: main java.lang.Null

这里使用的代码是我从另一个片段类中提取出来的,它工作得非常好

我想从
data/data/
目录中提取文件列表,并在列表视图中显示它们

抛出的错误在第58行。lv.setAdapter

我已经从Eclipse切换到Android studio,所以这可能与此有关

日志:

02-04 12:21:48.535    7433-7433/com.super8bit.singoffbeta E/AndroidRuntime﹕ FATAL EXCEPTION: main
    java.lang.NullPointerException
            at com.super8bit.singoffbeta.UserGamesHandler.SetListViewAdapter(UserGamesHandler.java:58)
            at com.super8bit.singoffbeta.UserGamesHandler.onCreateView(UserGamesHandler.java:33)
我的代码是:

public class UserGamesHandler extends android.support.v4.app.Fragment implements

android.view.View.OnClickListener {

File path = new File(Environment.getRootDirectory().getAbsolutePath().toString());

ArrayList<String> fileList = new ArrayList<String>();

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    // Inflate the layout for this fragment
    View view = inflater.inflate(R.layout.fragment_user_games, container,
            false);

    getVideos(path);
    SetListViewAdapter();

    return view;
}

@Override
public void onClick(View view) {

}

private void getVideos(File f){

    File[] files = f.listFiles();
    //fileList.clear();
    for (File file : files){
        fileList.add(file.getName().toString()+".MP4  ");
}
}

private void SetListViewAdapter() {
    ListView lv = (ListView) getActivity().findViewById(R.id.listViewTest);

    ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(),
            R.layout.custom_listview, fileList);

    lv.setAdapter(adapter);

    Toast.makeText(getActivity().getApplicationContext(), fileList.toString(), Toast.LENGTH_LONG).show();
  }
}
public类UserGamesHandler扩展了android.support.v4.app.Fragment实现
android.view.view.OnClickListener{
文件路径=新文件(Environment.getRootDirectory().getAbsolutePath().toString());
ArrayList fileList=新建ArrayList();
@凌驾
创建视图上的公共视图(布局、充气机、视图组容器、,
Bundle savedInstanceState){
//为该碎片膨胀布局
视图=充气机。充气(R.layout.fragment\u user\u游戏,容器,
假);
获取视频(路径);
SetListViewAdapter();
返回视图;
}
@凌驾
公共void onClick(视图){
}
私人视频(文件f){
File[]files=f.listFiles();
//fileList.clear();
用于(文件:文件){
添加(file.getName().toString()+“.MP4”);
}
}
私有void SetListViewAdapter(){
ListView lv=(ListView)getActivity().findViewById(R.id.listViewTest);
ArrayAdapter=新的ArrayAdapter(getActivity(),
R.layout.custom_列表视图、文件列表);
低压设置适配器(适配器);
Toast.makeText(getActivity().getApplicationContext(),fileList.toString(),Toast.LENGTH_LONG).show();
}
}

声明您在创建视图上查看变量,并替换此行

ListView lv = (ListView) getActivity().findViewById(R.id.listViewTest);


在创建视图上声明查看变量,并替换此行

ListView lv = (ListView) getActivity().findViewById(R.id.listViewTest);

public类UserGamesHandler扩展了android.support.v4.app.Fragment实现
android.view.view.OnClickListener{
文件路径=新文件(Environment.getRootDirectory().getAbsolutePath().toString());
ArrayList fileList=新建ArrayList();
@凌驾
创建视图上的公共视图(布局、充气机、视图组容器、,
Bundle savedInstanceState){
//为该碎片膨胀布局
视图=充气机。充气(R.layout.fragment\u user\u游戏,容器,
假);
获取视频(路径);
SetListViewAdapter();
返回视图;
}    
@凌驾
已创建ActivityState上的公共无效(Bundle savedInstanceState)
{
super.onActivityCreated(savedInstanceState);
获取视频(路径);
SetListViewAdapter();
}
私人视频(文件f){
File[]files=f.listFiles();
//fileList.clear();
用于(文件:文件){
添加(file.getName().toString()+“.MP4”);
}
}
私有void SetListViewAdapter(){
ListView lv=(ListView)getView().findViewById(R.id.listViewTest);
ArrayAdapter=新的ArrayAdapter(getActivity(),
R.layout.custom_列表视图、文件列表);
低压设置适配器(适配器);
Toast.makeText(getActivity().getApplicationContext(),fileList.toString(),Toast.LENGTH_LONG).show();
}
}
}
公共类UserGamesHandler扩展了android.support.v4.app.Fragment实现
android.view.view.OnClickListener{
文件路径=新文件(Environment.getRootDirectory().getAbsolutePath().toString());
ArrayList fileList=新建ArrayList();
@凌驾
创建视图上的公共视图(布局、充气机、视图组容器、,
Bundle savedInstanceState){
//为该碎片膨胀布局
视图=充气机。充气(R.layout.fragment\u user\u游戏,容器,
假);
获取视频(路径);
SetListViewAdapter();
返回视图;
}    
@凌驾
已创建ActivityState上的公共无效(Bundle savedInstanceState)
{
super.onActivityCreated(savedInstanceState);
获取视频(路径);
SetListViewAdapter();
}
私人视频(文件f){
File[]files=f.listFiles();
//fileList.clear();
用于(文件:文件){
添加(file.getName().toString()+“.MP4”);
}
}
私有void SetListViewAdapter(){
ListView lv=(ListView)getView().findViewById(R.id.listViewTest);
ArrayAdapter=新的ArrayAdapter(getActivity(),
R.layout.custom_列表视图、文件列表);
低压设置适配器(适配器);
Toast.makeText(getActivity().getApplicationContext(),fileList.toString(),Toast.LENGTH_LONG).show();
}
}
}

getView()
onActivityCreated
中,我确实尝试过getView(),但它随后在该行抛出一个空指针。还有其他建议吗?您必须重写onActivityCreated,然后才能使用getView()方法。它可以工作!我删除了getVideos(路径);和SetListViewAdapter();从onCreateView。谢谢你的解决方案<代码>getView()在创建的活动中,我确实尝试过getView(),但它随后在该行抛出一个空指针。还有其他建议吗?您必须重写onActivityCreated,然后才能使用getView()方法。它可以工作!我删除了getVideos(路径);和SetListViewAdapter();从onCreateView。谢谢你的解决方案!
 public class UserGamesHandler extends android.support.v4.app.Fragment implements

 android.view.View.OnClickListener {

 File path = new File(Environment.getRootDirectory().getAbsolutePath().toString());

 ArrayList<String> fileList = new ArrayList<String>();

@Override
 public View onCreateView(LayoutInflater inflater, ViewGroup container,
                     Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.fragment_user_games, container,
        false);

getVideos(path);
SetListViewAdapter();

return view;
}    
 @Override
public void onActivityCreated (Bundle savedInstanceState)
{
    super.onActivityCreated(savedInstanceState);
 getVideos(path);
SetListViewAdapter();

}


private void getVideos(File f){

File[] files = f.listFiles();
//fileList.clear();
for (File file : files){
    fileList.add(file.getName().toString()+".MP4  ");
 }
  }

private void SetListViewAdapter() {
ListView lv = (ListView) getView().findViewById(R.id.listViewTest);

ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(),
        R.layout.custom_listview, fileList);

lv.setAdapter(adapter);

Toast.makeText(getActivity().getApplicationContext(), fileList.toString(), Toast.LENGTH_LONG).show();
  }
}
   }