Salve, sto cercando di fare un app in cui c'è una casella di ricerca, ho scritto il codice, ma quando provo a digitare la prima lettera nell' AutoCompleteTextView, mi da un errore (java.lang.NullPointerException) senza specificare che tipo di errore l'ha causato.
x1public class Search extends Activity{
2AutoCompleteTextView acTV;
3ListView lview;
4
5String[] first = { "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten"};
6
7String[] second = { "Uno", "Due", "Tre", "Quattro", "Cinque", "Sei", "Sette", "Otto", "Nove", "Dieci"};
8int textlength = 0;
9ArrayList<String> first_sort = new ArrayList<String>();
10ArrayList<String> second_sort = new ArrayList<String>();
11
12public void onCreate(Bundle savedInstanceState){
13super.onCreate(savedInstanceState);
14setContentView(R.layout.mains);
15
16acTV = (AutoCompleteTextView) findViewById(R.id.acTV);
17lview = (ListView) findViewById(R.id.list);
18lview.setAdapter(new MyCustomAdapter(first, second));
19
20lview.setClickable(true);
21lview.setOnItemClickListener(new OnItemClickListener() {
22public void onItemClick(AdapterView<?> adapter, View view, int position, long id){
23
24Intent intent = new Intent(Search.this,Details.class);
25startActivity(intent);
26}
27{
28}});
29
30lview.setTextFilterEnabled(true);
31acTV.addTextChangedListener(new TextWatcher(){
32
33public void afterTextChanged(Editable s){
34}
35
36public void beforeTextChanged(CharSequence s, int start, int count, int after)
37{
38}
39
40public void onTextChanged(CharSequence s, int start,
41int before, int count)
42{
43
44textlength = acTV.getText().length();
45first_sort.clear();
46second_sort.clear();
47for (int i = 0; i < first.length; i++)
48{
49if (textlength <= first[i].length())
50{
51if (acTV.getText().toString().equalsIgnoreCase((String) first[i].subSequence(0, textlength)))
52{
53first_sort.add(first[i]);
54second_sort.add(first[i]);
55}
56}
57}
58
59lview.setAdapter(new MyCustomAdapter (first_sort, second_sort));
60
61}
62});
63}
64
65class MyCustomAdapter extends BaseAdapter{
66
67String[] data_first;
68String[] data_second;
69
70{
71
72}
73
74MyCustomAdapter(String[] first, String[] second){
75data_first = first;
76data_second = second;
77}
78
79MyCustomAdapter(ArrayList<String> first, ArrayList<String> second)
80{
81for(int i=0;i<first.size();i++)
82{
83data_first[i] = first.get(i);
84data_second[i] = second.get(i);
85}
86
87}
88
89public int getCount()
90{
91return data_first.length;
92}
93
94public String getItem(int position)
95{
96return null;
97}
98
99public long getItemId(int position)
100{
101return position;
102}
103
104public View getView(int position, View convertView, ViewGroup parent)
105{
106
107LayoutInflater inflater = getLayoutInflater();
108View row;
109
110row = inflater.inflate(R.layout.listitem_row, parent, false);
111
112TextView textview = (TextView) row.findViewById(R.id.textView1);
113TextView textview1 = (TextView) row.findViewById(R.id.textView2);
114
115textview.setText(data_first[position]);
116textview1.setText(data_second[position]);
117
118return (row);
119
120}
121}
122}
Questo è l'errore che mi da:
26112-24 02:51:28.761: E/AndroidRuntime(15427): FATAL EXCEPTION: main
212-24 02:51:28.761: E/AndroidRuntime(15427): java.lang.NullPointerException
312-24 02:51:28.761: E/AndroidRuntime(15427): at it.gogle.com.Search$MyCustomAdapter.<init>(Search. java:111)
412-24 02:51:28.761: E/AndroidRuntime(15427): at it.gogle.com.Search$2.onTextChanged(Search.java:85 )
512-24 02:51:28.761: E/AndroidRuntime(15427): at android.widget.TextView.sendOnTextChanged(TextView .java:6240)
612-24 02:51:28.761: E/AndroidRuntime(15427): at android.widget.TextView.handleTextChanged(TextView .java:6281)
712-24 02:51:28.761: E/AndroidRuntime(15427): at android.widget.TextView$ChangeWatcher.onTextChange d(TextView.java:6456)
812-24 02:51:28.761: E/AndroidRuntime(15427): at android.text.SpannableStringBuilder.sendTextChange (SpannableStringBuilder.java:889)
912-24 02:51:28.761: E/AndroidRuntime(15427): at android.text.SpannableStringBuilder.change(Spannab leStringBuilder.java:352)
1012-24 02:51:28.761: E/AndroidRuntime(15427): at android.text.SpannableStringBuilder.change(Spannab leStringBuilder.java:269)
1112-24 02:51:28.761: E/AndroidRuntime(15427): at android.text.SpannableStringBuilder.replace(Spanna bleStringBuilder.java:432)
1212-24 02:51:28.761: E/AndroidRuntime(15427): at android.text.SpannableStringBuilder.replace(Spanna bleStringBuilder.java:409)
1312-24 02:51:28.761: E/AndroidRuntime(15427): at android.text.SpannableStringBuilder.replace(Spanna bleStringBuilder.java:28)
1412-24 02:51:28.761: E/AndroidRuntime(15427): at android.view.inputmethod.BaseInputConnection.repla ceText(BaseInputConnection.java:583)
1512-24 02:51:28.761: E/AndroidRuntime(15427): at android.view.inputmethod.BaseInputConnection.commi tText(BaseInputConnection.java:174)
1612-24 02:51:28.761: E/AndroidRuntime(15427): at com.android.internal.widget.EditableInputConnectio n.commitText(EditableInputConnection.java:120)
1712-24 02:51:28.761: E/AndroidRuntime(15427): at com.android.internal.view.IInputConnectionWrapper. executeMessage(IInputConnectionWrapper.java:247)
1812-24 02:51:28.761: E/AndroidRuntime(15427): at com.android.internal.view.IInputConnectionWrapper$ MyHandler.handleMessage(IInputConnectionWrapper.ja va:73)
1912-24 02:51:28.761: E/AndroidRuntime(15427): at android.os.Handler.dispatchMessage(Handler.java:99 )
2012-24 02:51:28.761: E/AndroidRuntime(15427): at android.os.Looper.loop(Looper.java:123)
2112-24 02:51:28.761: E/AndroidRuntime(15427): at android.app.ActivityThread.main(ActivityThread.jav a:4627)
2212-24 02:51:28.761: E/AndroidRuntime(15427): at java.lang.reflect.Method.invokeNative(Native Method)
2312-24 02:51:28.761: E/AndroidRuntime(15427): at java.lang.reflect.Method.invoke(Method.java:521)
2412-24 02:51:28.761: E/AndroidRuntime(15427): at com.android.internal.os.ZygoteInit$MethodAndArgsCa ller.run(ZygoteInit.java:858)
2512-24 02:51:28.761: E/AndroidRuntime(15427): at com.android.internal.os.ZygoteInit.main(ZygoteInit .java:616)
2612-24 02:51:28.761: E/AndroidRuntime(15427): at dalvik.system.NativeStart.main(Native Method)
La riga incriminata è questa:
11lview.setAdapter(new MyCustomAdapter (first_sort, second_sort));
Come faccio a risolvere questo errore? Qualcuno saprebbe gentilmente aiutarmi? Grazie mille.