1

我想设置一个数组并从 txt 文件中输入一个单词。(stage.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();
4

2 回答 2

0

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

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

Handler handler = new Handler();
handler.post(new Runnable()
{
    public void run()
    {
        question.setText(stage[0][1]);
    }
});
于 2013-01-01T05:20:40.003 回答
0

您是否将 TextView 添加到您正在使用的布局中?或者您是否在布局 XML 文件中定义了 TextView?然后你的代码 TextView show = new 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]); 
}
于 2011-03-08T17:05:29.960 回答