Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.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 如何更正此文件搜索应用程序?获取nullpointerexception错误_Android_Android 4.4 Kitkat - Fatal编程技术网

Android 如何更正此文件搜索应用程序?获取nullpointerexception错误

Android 如何更正此文件搜索应用程序?获取nullpointerexception错误,android,android-4.4-kitkat,Android,Android 4.4 Kitkat,我正在尝试制作一个android应用程序,在用户实时键入时搜索手机文件并将其列在搜索框下。请帮助更正代码,我收到一个空指针异常。所有资源都已到位 import java.io.File; import java.io.FilenameFilter; import java.util.ArrayList; import android.os.Bundle; import android.app.ListActivity; import android.text.Editable; import a

我正在尝试制作一个android应用程序,在用户实时键入时搜索手机文件并将其列在搜索框下。请帮助更正代码,我收到一个空指针异常。所有资源都已到位

import java.io.File;
import java.io.FilenameFilter;
import java.util.ArrayList;
import android.os.Bundle;
import android.app.ListActivity;
import android.text.Editable;
import android.text.TextWatcher;
import android.util.Log;
import android.view.Menu;
import android.view.ViewGroup;
import android.view.ViewGroup.LayoutParams;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.ProgressBar;

public class MainActivity extends ListActivity implements TextWatcher {
    File[] myfiles;
    FilenameFilter filter;
    TextWatcher watcher;
    String query;
    static File file;
    EditText eT;
    ListView list;
    ArrayList<String> myList;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ProgressBar progressBar = new ProgressBar(this);
        progressBar.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,   
                LayoutParams.WRAP_CONTENT));

        progressBar.setIndeterminate(true);
        list.setEmptyView(progressBar);

        ViewGroup root = (ViewGroup) findViewById(android.R.id.content);
        root.addView(progressBar);

        list = (ListView) findViewById(android.R.id.list);

        File file = new File("Environment.getExternalStorageDirectory().getPath()");
        myfiles = file.listFiles(filter);

        Log.d("tag", "files passed");
        eT = (EditText) findViewById(R.id.editText1);
        }








    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);

        return true;
    }








    @Override
    public void afterTextChanged(Editable s) {
        // TODO Auto-generated method stub
        query = ((EditText) s).getText().toString();

                filter = new FilenameFilter() {


                    @Override
                    public boolean accept(File dir, String filename) {
                        String lcaseName = filename.toLowerCase();
                        if(lcaseName.contains(query)) {
                            return true;
                        }
                        else {
                        return false;
                        }
                    }

                };
                list.setAdapter(new ArrayAdapter<String>(this, 
                                android.R.layout.simple_list_item_1, myList));
                myList = new ArrayList<String>();

                for(int i =0; i < myfiles.length; i++) {
                  myList.add(myfiles[i].getName());

                }





    }


    @Override
    public void beforeTextChanged(CharSequence s, int start, int count,
            int after) {
        // TODO Auto-generated method stub

    }








    @Override
    public void onTextChanged(CharSequence s, int start, int before, int count) {
        // TODO Auto-generated method stub






    }

}
导入java.io.File;
导入java.io.FilenameFilter;
导入java.util.ArrayList;
导入android.os.Bundle;
导入android.app.ListActivity;
导入android.text.Editable;
导入android.text.TextWatcher;
导入android.util.Log;
导入android.view.Menu;
导入android.view.ViewGroup;
导入android.view.ViewGroup.LayoutParams;
导入android.widget.ArrayAdapter;
导入android.widget.EditText;
导入android.widget.ListView;
导入android.widget.ProgressBar;
公共类MainActivity扩展ListActivity实现TextWatcher{
文件[]我的文件;
文件名过滤器;
文本观察者;
字符串查询;
静态文件;
编辑文本;
列表视图列表;
ArrayList myList;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ProgressBar ProgressBar=新的ProgressBar(此);
progressBar.setLayoutParams(新的LayoutParams)(LayoutParams.WRAP_内容,
LayoutParams.WRAP_内容);
progressBar.SetUndeterminate(真);
list.setEmptyView(progressBar);
ViewGroup root=(ViewGroup)findviewbyd(android.R.id.content);
root.addView(progressBar);
list=(ListView)findViewById(android.R.id.list);
File File=新文件(“Environment.getExternalStorageDirectory().getPath()”;
myfiles=file.listFiles(过滤器);
Log.d(“标记”、“传递的文件”);
eT=(EditText)findViewById(R.id.editText1);
}
@凌驾
公共布尔onCreateOptions菜单(菜单){
//为菜单充气;这会将项目添加到操作栏(如果存在)。
getMenuInflater().充气(R.menu.main,menu);
返回true;
}
@凌驾
公共无效后文本已更改(可编辑){
//TODO自动生成的方法存根
查询=((EditText)s.getText().toString();
filter=新文件名filter(){
@凌驾
公共布尔接受(文件目录,字符串文件名){
字符串lcaseName=filename.toLowerCase();
if(lcaseName.contains(查询)){
返回true;
}
否则{
返回false;
}
}
};
list.setAdapter(新阵列适配器)(此,
android.R.layout.simple_list_item_1,myList));
myList=新的ArrayList();
对于(int i=0;i
您正在使用
list
进行初始化

从问题注释中提取的调试过程:

  • 请参阅logcat中的异常stacktrace
  • 在代码中找到对应的行
  • 找出可能的原因。通过修改代码并再次测试来测试您的理论
  • 在代码中发布有关崩溃的问题时,请始终包含步骤1和步骤2中的信息

    您正在使用
    list
    进行初始化

    从问题注释中提取的调试过程:

  • 请参阅logcat中的异常stacktrace
  • 在代码中找到对应的行
  • 找出可能的原因。通过修改代码并再次测试来测试您的理论
  • 在代码中发布有关崩溃的问题时,请始终包含步骤1和步骤2中的信息

    您正在使用
    list
    进行初始化

    从问题注释中提取的调试过程:

  • 请参阅logcat中的异常stacktrace
  • 在代码中找到对应的行
  • 找出可能的原因。通过修改代码并再次测试来测试您的理论
  • 在代码中发布有关崩溃的问题时,请始终包含步骤1和步骤2中的信息

    您正在使用
    list
    进行初始化

    从问题注释中提取的调试过程:

  • 请参阅logcat中的异常stacktrace
  • 在代码中找到对应的行
  • 找出可能的原因。通过修改代码并再次测试来测试您的理论

  • 在代码中发布有关崩溃的问题时,请始终包含步骤1和步骤2中的信息。

    变量
    列表
    未初始化。但在修复此问题后,您将再次获得
    NullPointerException
    ,因为您使用的
    filter
    也是空的

    myfiles = file.listFiles(filter);
    

    变量
    列表
    未初始化。但在修复此问题后,您将再次获得
    NullPointerException
    ,因为您使用的
    filter
    也是空的

    myfiles = file.listFiles(filter);
    

    变量
    列表
    未初始化。但在修复此问题后,您将再次获得
    NullPointerException
    ,因为您使用的
    filter
    也是空的

    myfiles = file.listFiles(filter);
    

    变量
    列表
    未初始化。但在修复此问题后,您将再次获得
    NullPointerException
    ,因为您使用的
    filter
    也是空的

    myfiles = file.listFiles(filter);
    

    1.请参阅logcat中的异常stacktrace。2.在代码中找到对应的行。3.找出原因,修复并测试问题是否消失。4.如果这没用,