获得&在android中设置xml的值

时间:2014-06-27 09:08:18

标签: android xml

我是Android的新手,MainActivity.java中的srcactivity_main.xml中的layout。如果我在activity_main.xml中创建了一个按钮,那么我可以通过MainActivity.java在xml中设置或获取按钮属性的值吗?

如何通过java

更改PopupWindow的属性,如hieght,width

5 个答案:

答案 0 :(得分:1)

是的,您可以修改XML文件中定义的View的属性。

为此,您必须在View中的activity_main.xml中添加ID,例如:

<Button
    android:id="@+id/myButton"
    ... />

然后,在您的MainActivity课程中,您可以使用以下方法获取此Button

Button myButton = (Button) findViewById(R.id.myButton);

现在,您可以在此视图中添加所需的每个属性。例如,您可以设置其文本:

myButton.setText("Click me!");

答案 1 :(得分:1)

是的,你可以。

获取按钮:

  
Button button = findViewById(R.id.yourButtonId);
  

获取属性(一些示例):

  
int x = button.getX;
int marginTop = ((ViewGroup.LayoutParams) button.getLayoutParams()).topMargin;
  

设置porperties:

  
button.setX = someValue;
((ViewGroup.LayoutParams) button.getLayoutParams()).topMargin = someValue;
  

答案 2 :(得分:1)

是的,你可以。任何视图的所有XML属性都具有等效的java方法。

例如,您可以使用

更改XML中的文本
android:text="Hello World!"

类似地,您可以使用以下Java代码更改文本运行时

textView1.setText("Hello World!");

两者都会给出相同的结果。

[注意] 请记住,编译时XML中的代码预定义,但java代码在运行时生效。即只有在设备/模拟器中运行应用程序后。因此,您无法在UI编辑器本身中看到java代码所做的更改。 Java代码仅在运行时反映。

答案 3 :(得分:1)

在Xml文件中 - 您可以将按钮的值设置为

<Button
        android:id="@+id/button_Save"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_weight="1"
        android:text="Save"
        />

要获取Java文件中的按钮值,可以像这样使用

Button btn;
btn = (Button)findViewById(R.id.button_Save);

btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
String buttonText = btn.getText().toString();
Toast.makeText(MainActivity.this,"Button text is:" +buttonText,Toast.LENGTH_LONG).show();



        }
    });

答案 4 :(得分:1)

您可以动态获取xml中定义的属性。但是你不能写那些xml文件(例如颜色,字符串,尺寸等)

设置Button属性的示例

<Button
                android:id="@+id/seeLater"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:background="@drawable/btn_message"
                android:fontFamily="sans-serif-condensed"
                android:gravity="center"
                android:text="@string/dialog_read_later"
                android:textColor="@color/White"
                android:textSize="@dimen/settings_tile_heading_size" 
                android:focusableInTouchMode="true"/>

在res文件夹下的xml文件下定义属性

<强> colors.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="White">#ffffff</color>  
</resources>

<强> dimens.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <dimen name="settings_tile_heading_size">13sp</dimen>
</resources>

<强>的strings.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="dialog_read_later">LATER</string>
</resources>