所以这里是一个完整的新手,我正在尝试找出一种呈现方式,并希望得到一些帮助或建议来呈现此错误。
java.lang.ArrayIndexOutOfBoundsException: length=1; index=1
到目前为止,这是我的代码。
public class MainActivity extends AppCompatActivity {
public static final String fileDictionary="dictionary.txt";
private List<DictionaryModel> data;
private RecyclerView rvWord;
private WordAdapters wordAdapters;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
rvWord=(RecyclerView)findViewById(R.id.rvWord);
rvWord.setLayoutManager(new LinearLayoutManager(getApplicationContext()));
data=new ArrayList<>();
readFromAsset(getApplicationContext(),fileDictionary);
wordAdapters=new WordAdapters();
wordAdapters.setData(data);
rvWord.setAdapter(wordAdapters);
//get data from searchview
SearchView searchView=(SearchView) findViewById(R.id.searchView);
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener()
{
@Override
public boolean onQueryTextSubmit(String query) {
return false;
}
@Override
public boolean onQueryTextChange(String newText) {
searchWord(newText);
return false;
}
});
}
private void readFromAsset(Context context, String fileName){
try{
BufferedReader reader=new BufferedReader(new InputStreamReader(context.getAssets().open(fileName)));
String mLine;
int i=0;
while ((mLine=reader.readLine()) !=null){
String[] lineData=mLine.split("-");
data.add(new DictionaryModel(""+i,lineData[0],lineData[1]));
i++;
}
reader.close();
}catch (IOException e){
e.printStackTrace();
}
}
private void searchWord(String wordSearch)
{
data.clear();
readFromAsset(getApplicationContext(), fileDictionary);
List<DictionaryModel> temp=new ArrayList<>();
for (DictionaryModel dictionaryModel : data){
if (dictionaryModel.getWord().contains(wordSearch))
{
temp.add(dictionaryModel);
}
}
data=temp;
wordAdapters.setData(data);
}
}
来自logcat
at com.justforyouapps.webs.medicalterms.MainActivity.readFromAsset(MainActivity.java:74) at com.justforyouapps.webs.medicalterms.MainActivity.onCreate(MainActivity.java:36)
答案 0 :(得分:0)
您的某条行格式不正确将data.add(new Dictionary...)
与if(lineData.length >1)