0

我这里有一个简单的 android 应用程序,我无法为我的错误保存解决方案,因为它在 R.java 文件中。它只是继续恢复,我无法保存我修改的内容。

这是我正在处理的代码。它只是一个简单的文本到语音按钮。

private TextToSpeech talker;
private ImageButton imageButton1;
private TextView text;`

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.abc);

    talker = new TextToSpeech(this,this);
imageButton1 = (ImageButton) findViewById(R.id.imageButton1);
text = (TextView) findViewById(R.id.text);
text.setText("A");
imageButton1.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View arg0) {
        // TODO Auto-generated method stub

        String strText2 = text.getText().toString();
        if (strText2.length()>0)
        { say(strText2); }

    }
});`

我有我的错误,text = (TextView) findViewById(R.id.text);因为它找不到应该保存在 R.java 文件中的资源 id。我的问题是每当我单击建议的解决方案时,即在类型 id 中创建字段文本,错误就会消失,如果我保存它,它就会恢复。

4

2 回答 2

1

您永远不应该尝试通过编辑来解决问题R.javaR.java相反,请在生成自 ...的 XML 布局文件中查找问题的根本原因并修复 XML。

请注意,R.java文件的开头有以下注释:

/* AUTO-GENERATED FILE.  DO NOT MODIFY. 
 *
 * This class was automatically generated by the
 * aapt tool from the resource data it found.  It
 * should not be modified by hand.
 */

我不明白他们怎么能更清楚地说明这一点。

于 2013-10-14T08:15:19.163 回答
0

如果它告诉您使用 findViewByID 创建要查找的视图的 ID,则该 ID 不存在。如果您只是在 R.java 中创建该 id,您将解决症状但不是问题。

您正在膨胀R.layout.abc,所以我猜您要查找的视图位于该 xml 中。

您需要添加android:id="@+id/imageButton1"到您尝试在代码中检索的按钮。如果这仍然引发某种错误,请清理项目。

编辑:

如果要向布局添加 TextView,则需要向应该托管 TextView 的布局添加 id,检索布局,如

LinearLayout ll = findViewById(R.id.yourLayout);
TextView tv = new TextView(this);
ll.addView(tv);
tv.setVisibility(View.INVISIBLE);

现在您的视图中有一个新的文本视图。

于 2013-10-14T08:20:23.403 回答