【问题标题】:Find words in text file from assets folder ANDROID STUDIO从资产文件夹ANDROID STUDIO的文本文件中查找单词
【发布时间】:2017-09-19 15:43:31
【问题描述】:

我的应用有问题。 我要做的是找到从用户输入到文本字段中的单词的韵律。 我在资产文件夹中有一本名为“words.txt”的字典。 我的应用程序几乎可以正常工作,但它只能从我的文本文件中找到一个单词。 如何从文本字段中找到与单词押韵的所有单词? 有任何想法吗? 这是我的代码:

@Override
protected void onCreate(Bundle saveInstanceState){
    super.onCreate(saveInstanceState);
    setContentView(R.layout.activity_main);

    editTextWord = (EditText)findViewById(R.id.editTextWord);
    b_read = (Button)findViewById(R.id.buttonSearch);
    tv_text = (TextView)findViewById(R.id.nameTxt);
    b_clear = (Button)findViewById(R.id.buttonClear);



    b_clear.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent i = new Intent(MainActivity.this, MainActivity.class);
            startActivity(i);
        }
    });

    b_read.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            try {
                InputStream is = getAssets().open("words.txt");
                int size = is.available();
                BufferedReader rd = new BufferedReader(new InputStreamReader(is,"UTF-8"));
                String line;
                String word = editTextWord.getText().toString();
                if (word.isEmpty()){
                    Toast.makeText(getApplicationContext(), "Wpisz słowo", Toast.LENGTH_SHORT).show();
                    return;
                }

                while ((line = rd.readLine()) !=null ){
                    if (line.substring(line.length()-2).equals(word.substring(word.length()-2))){
                        tv_text.setText(line);

                    }
                }
                rd.close();

            }catch (IOException ex){
                ex.printStackTrace();
            }


        }
    });
}

【问题讨论】:

    标签: java android assets


    【解决方案1】:

    tv_text.setText 会覆盖 TextView 中已有的任何内容。你需要使用类似TextView.append(CharSequence)的东西

    试试:

    tv_text.append(line + "\n");
    

    【讨论】:

    • 很好,它可以工作,但现在我如何在下一个下显示它?现在看起来很糟糕
    • 您需要添加新行。也许试试: tv_text.append(line + "\n");
    • 我还有一个问题 ;) 有些词在点击按钮后有很多结果,但没有显示出来。在这种情况下我应该怎么做?我在想somethnik 倒回结果列表。有什么建议我应该阅读/了解?
    • 你能澄清你的意思吗?您的意思是某些结果会溢出 TextView 吗?或者前一个单词中的单词没有从列表中清除?或者您的列表中缺少您希望看到的字词?
    • 我的意思是对于某些词,TextViev 中显示的结果太多,所以它只显示 30 个结果,还有更多,所以是的,一些结果溢出了 TextViev。我应该使用一些列表或类似的东西吗?
    猜你喜欢
    • 2013-10-14
    • 2014-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-28
    相关资源
    最近更新 更多