Android findViewById无法找到资源

时间:2014-01-27 22:33:47

标签: java android findviewbyid

您好我的add_activity.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".AddActivity" >

<TextView
    android:id="@+id/textViewNome"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:layout_marginTop="19dp"
    android:text="Nome (univoco):" />

<TextView
    android:id="@+id/TextViewURL"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/textViewNome"
    android:layout_below="@+id/textViewNome"
    android:layout_marginTop="15dp"
    android:text="URL:" />

<TextView
    android:id="@+id/TextView02"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/TextViewURL"
    android:layout_below="@+id/TextViewURL"
    android:layout_marginTop="20dp"
    android:text="Aggiorna ogni" />

<EditText
    android:id="@+id/editText_URL"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBaseline="@+id/TextViewURL"
    android:layout_alignBottom="@+id/TextViewURL"
    android:layout_alignRight="@+id/editText_Name"
    android:layout_marginLeft="14dp"
    android:layout_toRightOf="@+id/TextViewURL"
    android:ems="10"
    android:inputType="textUri" >

    <requestFocus />
</EditText>

<EditText
    android:id="@+id/editText_Name"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBaseline="@+id/textViewNome"
    android:layout_alignBottom="@+id/textViewNome"
    android:layout_marginLeft="14dp"
    android:layout_toRightOf="@+id/textViewNome"
    android:ems="10" />

<TextView
    android:id="@+id/textView2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBottom="@+id/TextView02"
    android:layout_alignRight="@+id/editText_URL"
    android:layout_marginRight="32dp"
    android:text="minuti" />

<TextView
    android:id="@+id/textViewErrors"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true" />

<EditText
    android:id="@+id/editText_Time"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBaseline="@+id/TextView02"
    android:layout_alignBottom="@+id/TextView02"
    android:layout_toLeftOf="@+id/textView2"
    android:layout_toRightOf="@+id/TextView02"
    android:ems="10"
    android:inputType="number" />

<ImageButton
    android:id="@+id/OkButton"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/editText_Time"
    android:layout_marginTop="28dp"
    android:layout_toLeftOf="@+id/CancelButton"
    android:background="@null"
    android:onClick="OkButton_Handler"
    android:src="@drawable/add_icon" />

<ImageButton
    android:id="@+id/CancelButton"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:layout_alignTop="@+id/OkButton"
    android:background="@null"
    android:onClick="CancelButton_Handler"
    android:src="@drawable/delete_icon" />

我的方法试图找到editText_Time的视图:

    @Override
protected void onCreate(Bundle savedInstanceState) { //parte quando viene create l'interfaccia
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_add);
    Intent intent = getIntent();
    if(intent.getExtras().getInt("requestCode") == 1){ //Richiesta modifica
        ((EditText) findViewById(R.id.editText_Time)).setText(intent.getExtras().getInt("tempo"));
        ((EditText) findViewById(R.id.editText_Name)).setText(intent.getExtras().getString("nome"));
        //((EditText) findViewById(R.id.editText_URL)).setText(intent.getExtras().getString("url"));
        id_to_edit = intent.getExtras().getInt("id");
    }
}

启动我的应用程序时,logcat会显示Resources $ NotFoundException

我真的不明白他为什么能找到editText_Time

有人能帮助我吗? :d

1 个答案:

答案 0 :(得分:6)

问题在于这一行:

((EditText) findViewById(R.id.editText_Time))
           .setText(intent.getExtras().getInt("tempo"));

getInt会返回int,因此将调用方法setText(int resId),并使用getInt("tempo")返回的值搜索资源,该值不存在,因此{{} 1}}。

我假设您要使用ResourceNotFoundException返回的整数设置文本(即调用方法getInt)。所以:

setText(CharSequence text)

也不要多次拨打((EditText) findViewById(R.id.editText_Time)) .setText(String.valueOf(intent.getExtras().getInt("tempo"))); 。叫它一次:

getExtras()