android 已知控件的id名 怎么得到其id值

xml

 <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_main"
    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="com.example.hezhi.schoolcalendar.MainActivity">

    <TextView
        android:id="@+id/yhz"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World!"
        android:layout_marginTop="214dp"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true" />


</RelativeLayout>

MainActivity

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

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

        TextView tv = (TextView) findViewById(R.id.yhz);
        tv.setText("success");
    }
}


上面这个我不想使用R.id.yhz的方式得到它的id 可以通过id名是yhz得到它的id值吗?

4个回答

详细可参考:
"")
给出一个范例:
int intialResID = getResources().getIdentifier(initialCbID, "id", context.getApplicationContext().getPackageName());


通过给定的字符串获取控件的ID

getResources().getIdentifier("TextView01", "id", "wa_keng.code");

通过上面的代码可以获取id为TextView01的控件.第三个参数为包的名称。

for(int i=1;i<=4;i++){
String idName="yhz";
idName=idName+i;
Log.d("yhz", "onCreate: "+idName);
int id=getResources().getIdentifier(idName,"id",getBaseContext().getPackageName());//通过名字获取id 其值为R.id.yhz
TextView tv = (TextView) findViewById(id);
tv.setText("success");
}
保存一下 用的这个方法

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐