使用 BufferedReader...为什么这段代码在 android 上不起作用?它可以在 Java 中运行

发布于 2024-10-20 15:41:59 字数 565 浏览 6 评论 0原文

我想设置一个数组并从txt文件中输入一个单词。 (舞台.txt) 它可以在Java中运行,但不能在android中运行... 当我使用 (System.out.println(stage[0][1]) 时,控制台显示字符串值。 但在 Android 中,当我使用

TextView show = new TextView; 
show= (TextView)findViewById(R.id.question); 
show.setText(stage[0][1]);

TextView 时没有显示任何内容...出了什么问题?...请帮助...

String[][] stage = new String[2][3];
BufferedReader in = new BufferedReader(new FileReader("stage.txt"));
for(int i=0; i<2;i++)
{
    for(int j=0; j<3; j++)
    {
        stage[i][j]=in.readLine();
    }
}

in.close();

I wanted to set a array and input a word from txt file. (stage.txt)
It works in Java, but not in android...
When I use (System.out.println(stage[0][1]), the console showed String value.
But in Android, when I use

TextView show = new TextView; 
show= (TextView)findViewById(R.id.question); 
show.setText(stage[0][1]);

The TextView showed nothing... what's wrong?... please help...

String[][] stage = new String[2][3];
BufferedReader in = new BufferedReader(new FileReader("stage.txt"));
for(int i=0; i<2;i++)
{
    for(int j=0; j<3; j++)
    {
        stage[i][j]=in.readLine();
    }
}

in.close();

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

葬﹪忆之殇 2024-10-27 15:41:59

您是否将 TextView 添加到您正在使用的布局中?
或者您是否在布局 XML 文件中定义了 TextView?然后你的代码 TextView show = new TextView;是错误的。

TextView显示=新的TextView;
应该是
TextView show = new TextView(this);(在活动中)。

您之前可以提供完整的代码吗?
你会遇到什么错误?

更新:
我想知道您的文件是否在您的 SD 卡上(因为该路径)。您可以通过Environment.getExternalStorageDirectory().getAbsolutePath()访问SD卡以获取其根路径。

对于您的项目,将该行更改为:

BufferedReader br = new BufferedReader(new InputStreamReader(
                openFileInput("stage.txt")));

完整源代码:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    String[][] stage = new String[2][3];
    try {
        BufferedReader br = new BufferedReader(new InputStreamReader(
                openFileInput("stage.txt")));
        for(int i=0; i<2;i++)
        {
            for(int j=0; j<3; j++)
            {
                stage[i][j]=br.readLine();
            }
        }
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    TextView question = (TextView) findViewById(R.id.question);
    question.setText(stage[0][1]); 
}

Did you add the TextView to the Layout you're using?
Or did you define the TextView in the layout XML-File? Then your code TextView show = new TextView; is wrong.

TextView show = new TextView;
should be
TextView show = new TextView(this); (in an Activity).

Could you provide the full Code before?
What errors do you get?

UPDATE:
I'm wondering if your file is on your SD Card (because of that path). You can access the SD Card via Environment.getExternalStorageDirectory().getAbsolutePath() to get its root path.

For your projects, change that line to:

BufferedReader br = new BufferedReader(new InputStreamReader(
                openFileInput("stage.txt")));

Full Source:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    String[][] stage = new String[2][3];
    try {
        BufferedReader br = new BufferedReader(new InputStreamReader(
                openFileInput("stage.txt")));
        for(int i=0; i<2;i++)
        {
            for(int j=0; j<3; j++)
            {
                stage[i][j]=br.readLine();
            }
        }
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    TextView question = (TextView) findViewById(R.id.question);
    question.setText(stage[0][1]); 
}
莫相离 2024-10-27 15:41:59

//假设二维数组已正确填充
//如果没有尝试将txt文件放入你的资源文件夹中并使用getAssets()

但无论如何
尝试这样做,看看是否有帮助。

Handler handler = new Handler();
handler.post(new Runnable()
{
    public void run()
    {
        question.setText(stage[0][1]);
    }
});

//Assuming the 2d array is correctly filled
//if not try putting the txt file in your asset folder and use getAssets()

but anyway
try doing it this way, see if it helps.

Handler handler = new Handler();
handler.post(new Runnable()
{
    public void run()
    {
        question.setText(stage[0][1]);
    }
});
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文