Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 更改文本视图';重力布局_Java_Android_Android Layout_Android Listview_Textview - Fatal编程技术网

Java 更改文本视图';重力布局

Java 更改文本视图';重力布局,java,android,android-layout,android-listview,textview,Java,Android,Android Layout,Android Listview,Textview,我在列表视图中有一个文本视图。我正在尝试根据相应的文本更改textview的对齐方式。但它不起作用 谢谢 if (stringItem != null) { TextView messageText = (TextView) view.findViewById(R.id.list_item_text_view); if (mine==0) messageText.setGravity(Gravity.RIGHT);

我在
列表视图中有一个
文本视图
。我正在尝试根据相应的文本更改
textview
的对齐方式。但它不起作用

谢谢

if (stringItem != null) {
        TextView messageText = (TextView) view.findViewById(R.id.list_item_text_view);

         if (mine==0)
             messageText.setGravity(Gravity.RIGHT);            

         if (mine==1)    
             messageText.setGravity(Gravity.LEFT);

     messageText.setText(stringItem);   
} 
我的布局如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/list_item"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center_vertical"
android:orientation="vertical" >

<TextView
    android:id="@+id/list_item_text_view"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginLeft="5dp"
    android:layout_marginRight="10dp"
    android:layout_marginTop="10dp"
    android:layout_marginBottom="10dp"
    android:background="@drawable/self_textview"
    android:textSize="20sp" />
</LinearLayout>

将textview宽度设置为与父视图匹配,重力设置视图内部的布局方式,因此,如果将textview的宽度设置为列表视图项目宽度,然后设置textview的重力,它将与实际文本对齐

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



我还注意到在线性布局上设置了重力。我不会尝试混合重力和布局,只是坚持一个。您还可以通过设置线性布局的重力而不是文本视图来获得所需的效果

我可以通过更改
线性布局的
布局参数
并更改其
重力
,然后将其设置为
文本视图
,使其工作

LinearLayout.LayoutParams para=new LinearLayout.LayoutParams(
        LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT );
             para.gravity = Gravity.RIGHT;
             messageText.setLayoutParams(para);

将文本视图的重力更改为右侧

你能在logcat中发布结果吗?我没有得到任何错误,但它没有设置对齐。所有的信息都以相同的方式显示。看看varibale“我的”是否已初始化?哦,我想文本的设置是正确的。但我希望整个文本视图从右到左开始,而不是从左到右。那是因为这是在改变布局,而不是重力。这就是事实,这是一个糟糕的做法还是什么?不,一点也不,我只是指出区别,我真的被重力和布局重力弄糊涂了一段时间,它仍然需要一些修补。原始代码使用xml的原因是因为它设置了布局重力,java代码失败的原因是因为它设置了重力。这就是为什么我更新了java代码来更改布局重力。
<TextView
    android:id="@+id/list_item_text_view"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginLeft="5dp"
    android:layout_marginRight="10dp"
    android:layout_marginTop="10dp"
    android:layout_marginBottom="10dp"
    android:background="@drawable/self_textview"
    android:textSize="20sp" />
</LinearLayout>
LinearLayout.LayoutParams para=new LinearLayout.LayoutParams(
        LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT );
             para.gravity = Gravity.RIGHT;
             messageText.setLayoutParams(para);