XML属性及其相应的相关方法

时间:2011-03-22 09:53:28

标签: android

我是Android开发的新手,目前正在享受它。

我一直在使用XML文件构建UI,并发现构建静态UI非常容易。

现在,我需要构建一个UI,其中一个TextView位置在运行时更改。

这可以仅使用XML来完成吗?

<?xml version="1.0" encoding="utf-8"?>
<AbsoluteLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"

    >
<TextView
        android:layout_height="wrap_content"
        android:text="0%"
        android:layout_width="wrap_content"
        android:id="@+id/percent"
        android:textSize="15sp"
        android:layout_x="41dip"
        android:layout_y="295dip">
    </TextView>

</AbsoluteLayout>

现在,我可以通过更改layout_xlayout_y的值来定位TextView。但是如何在运行时执行此操作?

我试过这个:

TextView text;

text=(TextView)findViewById(R.id.percent);

执行text.setText("This can be done");会在运行时轻松更改文本,但如何更改代码中的位置?

2 个答案:

答案 0 :(得分:0)

首先,绝对布局已弃用,改为使用相对布局,Frame-Layout。

然后使用,

LayoutParams params = new LayoutParams( MarginLayoutParams.WRAP_CONTENT, MarginLayoutParams.WRAP_CONTENT);

如果要求导入,请使用import selected layoutparams。

之后使用

params.leftmargin 

params.rightmargin

更改位置。

答案 1 :(得分:0)

如果使用绝对布局尝试此操作,请查看以下代码。

main.xml中

<?xml version="1.0" encoding="utf-8"?>
<AbsoluteLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
>
<TextView
    android:text="@string/hello"
    android:layout_height="wrap_content"
    android:id="@+id/textView1"
    android:layout_width="fill_parent"
    android:layout_alignParentRight="true">
</TextView>

<EditText
    android:hint="xcor"
    android:layout_height="wrap_content"
    android:id="@+id/xcor"
    android:background="@drawable/select"
    android:layout_x="165dip"
    android:layout_width="wrap_content"
    android:layout_y="64dip">
</EditText>
<EditText
    android:hint="ycor"
    android:layout_height="wrap_content"
    android:id="@+id/ycor"
    android:layout_x="168dip"
    android:layout_width="wrap_content"
    android:layout_y="168dip">
</EditText>
    <Button
        android:layout_height="wrap_content"
        android:id="@+id/button"
        android:text="Set Position"
        android:layout_x="218dip"
        android:layout_width="wrap_content"
        android:layout_y="278dip"
        android:background="@drawable/select"
        >
    </Button>
</AbsoluteLayout>

CustomPosition.java

public class CustomPosition extends Activity {
    /** Called when the activity is first created. */

    LayoutParams params = new LayoutParams(MarginLayoutParams.WRAP_CONTENT, MarginLayoutParams.WRAP_CONTENT, 150, 50);

    TextView text;
    EditText xcor;
    EditText ycor;
    Button button;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        text=(TextView)findViewById(R.id.textView1);
        xcor=(EditText)findViewById(R.id.xcor);
        ycor=(EditText)findViewById(R.id.ycor);
        button=(Button)findViewById(R.id.button);

        button.setOnClickListener(new View.OnClickListener()
        {
            public void onClick(View v)
            {
                params.x=Integer.parseInt(xcor.getText().toString());
                params.y=Integer.parseInt(ycor.getText().toString());
                text.setLayoutParams(params);
            }
        });
    }
}