所以我使用的是我输入的字符串列表,所以所有字符串都在那里,但是当我尝试在它们上使用子字符串时,它会不断给我StringIndexOutOfBounds异常。
以下是代码:
List<String> li = new ArrayList<String>();
String entered = text.getText().toString().trim();
String[] query = entered.split(" ");
int temp;
for (int i = 0; i < sizeString;i++)
{
temp = a[i].indexOf(" ");
if (query[0].toLowerCase().matches(a[i].toLowerCase().substring(0,temp)))
li.add(a[i]);
}
好的,现在我的arrayadapter给了我一个空指针 adb除了它的nullpointer之外不会告诉我什么 完整代码:
public void onClick (View v)
{
List<String> li = new ArrayList<String>();
String entered = text.getText().toString().trim();
String[] query = entered.split(" ");
int temp;
for (int i = 0; i < sizeString;i++)
{
if ( a[i].indexOf ( " " ) != -1 )
{
temp = a[i].indexOf(" ");
a[i].substring(0,temp);
}
if (query[0].toLowerCase().equals(a[i].toLowerCase()))
li.add(a[i]);
}
setContentView(R.layout.search_results);
final ListView list= (ListView)findViewById(R.id.search_list);
String[] results = new String[sizeString];
for(int i = 0; i<li.size();i++)
results[i]=li.get(i);
list.setAdapter(new ArrayAdapter<String>(Browse.this,android.R.layout.simple_list_item_1 ,results));
}
答案 0 :(得分:1)
如果没有空格,那么temp将为-1,你应该检查一下。
答案 1 :(得分:0)
可能会在indexOf()
中添加一个返回-1的检查答案 2 :(得分:0)
在此行if ( a[i].indexOf ( " " ) != -1 )
temp = a[i].indexOf(" ");
中添加此条件