问题的因素:
调试了一下午,我一直是以为是数据没有传递过来,然后一直在数据获取环节检查在检查,数据跟踪在跟踪,最后发现数据获取是OK??的,结果是数据传递过来了,原来是显示有问题:
以下代码的解释:
注意:?? 由于在真实开发的项目中代码非常庞大/非常复杂,也不能暴露公司的代码,所以以下代码都是简单的测试代码:
问题的示范:
布局文件:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".MainActivity"> <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="20dp"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="集体业务一:" /> <TextView android:id="@+id/tv_operation1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="@android:color/black" android:textColorHint="@android:color/black" android:layout_centerHorizontal="true" android:text="测试值" /> </RelativeLayout> <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="20dp"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="集体业务二:" /> <TextView android:id="@+id/tv_operation2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="@android:color/black" android:textColorHint="@android:color/black" android:layout_centerHorizontal="true" android:text="测试值" /> </RelativeLayout> <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="20dp"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="集体业务三:" /> <TextView android:id="@+id/tv_operation3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="@android:color/black" android:textColorHint="@android:color/black" android:layout_centerHorizontal="true" android:text="测试值" /> </RelativeLayout> </LinearLayout>
Activity文件:
package liudeli.my_work_summary; 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); initView(); } private void initView() { TextView tvOperation1 = findViewById(R.id.tv_operation1); TextView tvOperation2 = findViewById(R.id.tv_operation2); TextView tvOperation3 = findViewById(R.id.tv_operation3); tvOperation1.setHint("工作业务数据1...."); tvOperation2.setHint("工作业务数据2...."); tvOperation3.setHint("工作业务数据3...."); } }
结果:结果却是设置无效;
解决方案一:在布局文件去除 android:text="测试值"
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".MainActivity"> <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="20dp"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="集体业务一:" /> <TextView android:id="@+id/tv_operation1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="@android:color/black" android:textColorHint="@android:color/black" android:layout_centerHorizontal="true" /> </RelativeLayout> <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="20dp"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="集体业务二:" /> <TextView android:id="@+id/tv_operation2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="@android:color/black" android:textColorHint="@android:color/black" android:layout_centerHorizontal="true" /> </RelativeLayout> <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="20dp"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="集体业务三:" /> <TextView android:id="@+id/tv_operation3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="@android:color/black" android:textColorHint="@android:color/black" android:layout_centerHorizontal="true" /> </RelativeLayout> </LinearLayout>
解决方案二:在Activity文件代码里 修改成.setText();
package liudeli.my_work_summary; 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); initView(); } private void initView() { TextView tvOperation1 = findViewById(R.id.tv_operation1); TextView tvOperation2 = findViewById(R.id.tv_operation2); TextView tvOperation3 = findViewById(R.id.tv_operation3); /* tvOperation1.setHint("工作业务数据1...."); tvOperation2.setHint("工作业务数据2...."); tvOperation3.setHint("工作业务数据3...."); */ tvOperation1.setText("工作业务数据1...."); tvOperation2.setText("工作业务数据2...."); tvOperation3.setText("工作业务数据3...."); } }