Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/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
搜索文本不适用于listview ie_Listview_Search - Fatal编程技术网

搜索文本不适用于listview ie

搜索文本不适用于listview ie,listview,search,Listview,Search,addTextChangedlistener返回错误,请帮助。我有一个Addportfolio.java文件加载列表对话框,它来自listview的另一个xml。listview xml具有搜索文本和listview字段 AddPortfolio.java import java.util.ArrayList; import android.app.Activity; import android.app.Dialog; import android.content.Context; impor

addTextChangedlistener返回错误,请帮助。我有一个Addportfolio.java文件加载列表对话框,它来自listview的另一个xml。listview xml具有搜索文本和listview字段

AddPortfolio.java

import java.util.ArrayList;
import android.app.Activity;
import android.app.Dialog;
import android.content.Context;
import android.database.Cursor;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.ListView;

public class AddPortfolio extends Activity implements OnItemClickListener {
    ListView list;
    Dialog listDialog;
    DBAdapter myDb;
    private ArrayAdapter adapter;
    ArrayList nameList = new ArrayList();
    private ArrayList<String> array_search= new ArrayList<String>();
    int textlength=0;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.add_portfolio);

    myDb = new DBAdapter(this);
    myDb.open();
    Cursor cursor = myDb.getAllRows();
    if (cursor.moveToFirst()) {
        do {
            // Process the data:
            String name = cursor.getString(1);
            nameList.add(name);
        } while(cursor.moveToNext());
    }

    // Close the cursor to avoid a resource leak.
    cursor.close();
}
  public void addlist(View v){
showdialog();
   }
  private void showdialog()
   {

listDialog = new Dialog(AddPortfolio.this);
listDialog.setTitle("Select Company");
 LayoutInflater li = (LayoutInflater) this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
 View v = li.inflate(R.layout.listviewdisplay, null, false);
 listDialog.setContentView(v);
 listDialog.setCancelable(true);
 //there are a lot of settings, for dialog, check them all out!

  list = (ListView) listDialog.findViewById(R.id.listview);
 list.setOnItemClickListener((OnItemClickListener) this);
 //list1.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, nameList));
 //now that the dialog is set up, it's time to show it

 adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, nameList);
 list.setAdapter(adapter); 
 listDialog.show();


 EditText st= (EditText) findViewById(R.id.editText1);
 st.addTextChangedListener(new TextWatcher() {

     @Override
     public void onTextChanged(CharSequence cs, int arg1, int arg2, int arg3) {
        AddPortfolio.this.adapter.getFilter().filter(cs);

      }

     @Override
     public void beforeTextChanged(CharSequence arg0, int arg1, int arg2,
             int arg3) {
         // TODO Auto-generated method stub
         Log.i("REACHES BEFORE", "YES");   
     }

     @Override
     public void afterTextChanged(Editable arg0) {
         // TODO Auto-generated method stub 
     }
 }); 
 }


    public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3)
    {
EditText edittext1=(EditText) findViewById(R.id.add_company);
    edittext1.setText((CharSequence) nameList.get(arg2));
    listDialog.cancel();   
    }
    }
02-19 02:24:26.484:D/AndroidRuntime(1487):关闭虚拟机
02-19 02:24:26.484:W/dalvikvm(1487):threadid=1:线程以未捕获异常退出(组=0xb3afeba8)
02-19 02:24:26.584:E/AndroidRuntime(1487):致命异常:主
02-19 02:24:26.584:E/AndroidRuntime(1487):进程:com.example.merostock,PID:1487
02-19 02:24:26.584:E/AndroidRuntime(1487):java.lang.IllegalStateException:无法执行活动的方法
02-19 02:24:26.584:E/AndroidRuntime(1487):在android.view.view$1.onClick(view.java:3823)
02-19 02:24:26.584:E/AndroidRuntime(1487):在android.view.view.performClick(view.java:4438)
02-19 02:24:26.584:E/AndroidRuntime(1487):在android.view.view$PerformClick.run(view.java:18422)
02-19 02:24:26.584:E/AndroidRuntime(1487):在android.os.Handler.handleCallback(Handler.java:733)
02-19 02:24:26.584:E/AndroidRuntime(1487):位于android.os.Handler.dispatchMessage(Handler.java:95)
02-19 02:24:26.584:E/AndroidRuntime(1487):在android.os.Looper.loop(Looper.java:136)上
02-19 02:24:26.584:E/AndroidRuntime(1487):位于android.app.ActivityThread.main(ActivityThread.java:5017)
02-19 02:24:26.584:E/AndroidRuntime(1487):位于java.lang.reflect.Method.Invokenactive(本机方法)
02-19 02:24:26.584:E/AndroidRuntime(1487):位于java.lang.reflect.Method.invoke(Method.java:515)
02-19 02:24:26.584:E/AndroidRuntime(1487):在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
02-19 02:24:26.584:E/AndroidRuntime(1487):位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
02-19 02:24:26.584:E/AndroidRuntime(1487):在dalvik.system.NativeStart.main(本机方法)
02-19 02:24:26.584:E/AndroidRuntime(1487):由以下原因引起:java.lang.reflect.InvocationTargetException
02-19 02:24:26.584:E/AndroidRuntime(1487):位于java.lang.reflect.Method.Invokenactive(本机方法)
02-19 02:24:26.584:E/AndroidRuntime(1487):位于java.lang.reflect.Method.invoke(Method.java:515)
02-19 02:24:26.584:E/AndroidRuntime(1487):在android.view.view$1.onClick(view.java:3818)
02-19 02:24:26.584:E/AndroidRuntime(1487):。。。还有11个
02-19 02:24:26.584:E/AndroidRuntime(1487):由以下原因引起:java.lang.NullPointerException
02-19 02:24:26.584:E/AndroidRuntime(1487):在com.example.merostock.AddPortfolio.showdialog(AddPortfolio.java:77)
02-19 02:24:26.584:E/AndroidRuntime(1487):在com.example.merostock.AddPortfolio.addlist(AddPortfolio.java:53)
02-19 02:24:26.584:E/AndroidRuntime(1487):。。。14多

请检查AddPortfolio.java中的第77行,它会导致NPE

我在第77行有此代码:EditText st=(EditText)findViewById(R.id.editText1);st.addTextChangedListener(new TextWatcher(){在布局添加工具组合中是否有id为editText1的EditText?可能EditText在对话框布局中。我在对话框布局ie listviewdisplay.xml中有editText1。它在LayoutFlater li=(LayoutFlater)this.getSystemService(Context.layout\u INFLATER\u服务)中调用;View v=li.inflate(R.layout.listviewdisplay,null,false);EditText st=(EditText)findViewById(R.id.editText1);此行表示您在“活动内容”视图中找到了DViewById,而不是对话框视图,您没有它,因此NPE会导致。请尝试以下操作:EditText st=(EditText)listDialog.findViewById(R.id.editText1);它工作了,但现在又遇到了另一个问题,当我在字段中搜索时,它会在listview中显示同一家公司两次,当我选择它时,它会从原始listview索引返回
   02-19 02:24:26.484: D/AndroidRuntime(1487): Shutting down VM