R.Java在修改它以解决错误后继续恢复

时间:2013-10-14 08:02:19

标签: java android

我这里有一个简单的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中创建字段文本,错误将消失,如果我保存它,它只是恢复。

2 个答案:

答案 0 :(得分:1)

您永远不应该通过编辑R.java来尝试修复问题。相反,在XML布局文件中查找问题的根本原因R.java是从...生成的,并修复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.
 */

我看不出他们如何更清楚地说明这一点。

答案 1 :(得分: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);

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