获取异常错误并需要建议来解决它

时间:2017-08-22 03:15:29

标签: java android xml android-layout

所以这里是一个完整的新手,我正在尝试找出一种呈现方式,并希望得到一些帮助或建议来呈现此错误。

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)

1 个答案:

答案 0 :(得分:0)

您的某条行格式不正确将data.add(new Dictionary...)if(lineData.length >1)

包裹在一起