【发布时间】:2012-03-11 18:38:21
【问题描述】:
我四处寻找可以保存通用文本文件以读入我的 Android 项目的位置,但找不到明确的答案。当我按照某人的建议(我必须创建原始文件夹)将“foo.txt”文件保存到我的 res/raw 文件夹中时,R.java 文件会出现以下行错误:
public static final class raw {
public static final int 1_1=0x7f050000;
}
这是因为我的文件在第一行包含字符串“1_1”,这是我想要的。我应该将文件放在文件夹结构中的哪个位置以便能够读取它?该文件不是从 Android 创建的,而是由我手动创建的。
还有人可以就如何读取以下格式的文件提出建议吗?我希望能够一一读取字符串和数字并将其插入到我的 Android 项目中的 java 变量中。最好用逗号还是空格分隔?
1_1
String
Int
Int String String Int Int Float Float Int Int
Int String String Int Int Float Float Int Int
Int String String Int Int Float Float Int Int
Int String String Int Int Float Float Int Int
Int String String Int Int Float Float Int Int
Int String String Int Int Float Float Int Int
更新了更多代码:
package com.my.package;
import java.io.File;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageButton;
import android.widget.TextView;
import android.widget.Toast;
//public class GameActivity extends FragmentActivity implements OnClickListener {
public class GameActivity extends Activity implements OnClickListener{
private ImageButton leftPauseButton;
private ImageButton rightPauseButton;
private ImageButton leftButton1;
private ImageButton leftButton2;
private ImageButton leftButton3;
private ImageButton rightButton1;
private ImageButton rightButton2;
private ImageButton rightButton3;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.testlayout);
TextView txtView = (TextView) (findViewById(R.id.testID_canBeRemoved));
//Did not work
//int resourceId = this.getResources().getIdentifier("com.my.package:raw/foo.txt", null, null);
//File f = new File("com.my.package:raw/foo.txt");
//Does not work - file.exists() returns a zero value
File file = new File("assets/foo.txt");
if ( file.exists() ){
txtView.setText("Exists");
}
else{
txtView.setText("Does not exist");
}
// InitiateUIComponents();
}
//This is for using another xml layout
private void InitiateUIComponents(){
leftPauseButton = (ImageButton) (findViewById(R.id.leftPauseButtonID));
rightPauseButton = (ImageButton) (findViewById(R.id.rightPauseButtonID));
leftButton1 = (ImageButton) (findViewById(R.id.leftMenuButton1ID));
leftButton2 = (ImageButton) (findViewById(R.id.leftMenuButton2ID));
leftButton3 = (ImageButton) (findViewById(R.id.leftMenuButton3ID));
rightButton1 = (ImageButton) (findViewById(R.id.rightMenuButton1ID));
rightButton2 = (ImageButton) (findViewById(R.id.rightMenuButton2ID));
rightButton3 = (ImageButton) (findViewById(R.id.rightMenuButton3ID));
leftPauseButton.setOnClickListener(this);
rightPauseButton.setOnClickListener(this);
leftButton1.setOnClickListener(this);
leftButton2.setOnClickListener(this);
leftButton3.setOnClickListener(this);
rightButton1.setOnClickListener(this);
rightButton2.setOnClickListener(this);
rightButton3.setOnClickListener(this);
}
//This is for using another xml layout
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.leftPauseButtonID:
Toast.makeText(this, "Left pause button clicked!", Toast.LENGTH_SHORT).show();
break;
case R.id.rightPauseButtonID:
Toast.makeText(this, "Right pause button clicked!", Toast.LENGTH_SHORT).show();
break;
case R.id.leftMenuButton1ID:
Toast.makeText(this, "Left menu button 1 clicked!", Toast.LENGTH_SHORT).show();
break;
case R.id.leftMenuButton2ID:
Toast.makeText(this, "Left menu button 2 clicked!", Toast.LENGTH_SHORT).show();
break;
case R.id.leftMenuButton3ID:
Toast.makeText(this, "Left menu button 3 clicked!", Toast.LENGTH_SHORT).show();
break;
case R.id.rightMenuButton1ID:
Toast.makeText(this, "Right menu button 1 clicked!", Toast.LENGTH_SHORT).show();
break;
case R.id.rightMenuButton2ID:
Toast.makeText(this, "Right menu button 2 clicked!", Toast.LENGTH_SHORT).show();
break;
case R.id.rightMenuButton3ID:
Toast.makeText(this, "Right menu button 3 clicked!", Toast.LENGTH_SHORT).show();
break;
default:
break;
}
}
}
这里是这个测试的 xml 文件:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/testID_canBeRemoved"
android:text="Blabla"
>
</TextView>
</LinearLayout>
【问题讨论】: