来自int的资源

时间:2015-05-07 16:06:40

标签: android textview

当我有一个来源:

TextView localTV = (TextView)findViewById(2312345);

有没有办法让编译器将其转换为具有真实姓名的资源,例如:

TextView localTV = (TextView)findViewById(R.id.mytext);

2 个答案:

答案 0 :(得分:1)

  

当我有这个

的来源时

拥有该代码的最可能原因是代码是从APK反编译的。

  

有没有办法让编译器将其转换为具有真实姓名的资源

不,原因很简单,可能没有与该号码对应的资源。只要您将此反编译的应用程序加载到IDE中,就会为所有资源分配可能与反编译代码中的硬编码值匹配或不匹配的编号。

答案 1 :(得分:0)

你应该打开活动的layer.xml或你正在处理的片段,然后找到textView并添加一个这样的id。

   <TextView
    android:id="@+id/mytext"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="My local TV" />

这将在R.java中创建一个变量,其中包含一个你不需要自己处理的int。你只能打电话

TextView localTV = (TextView)findViewById(R.id.mytext);

但是如果你没有Xml布局并且是以programaticaly创建的,那么你应该去res / values / ids.xml(如果找不到你可以创建它的ids.xml)并添加这样的ID

<?xml version="1.0" encoding="utf-8"?>
<resources>

<item name="mytext" type="id" />
<item name="navBarText" type="id" />
<item name="navBarImg" type="id" />


</resources> 

当您创建textView programaticaly时,您可以像这样设置TextView的Id

menuLayout.setId(R.id.mytext);

然后您可以使用

调用TextView
TextView localTV = (TextView)findViewById(R.id.mytext);