<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/bnav_shape_du" android:gravity="center" android:text="du" android:textColor="#d2d2d2" /> 以上出现 Hardcoded string "du", should use `@string` resource
时间: 2023-06-17 22:04:09 浏览: 81
这个警告是Android Studio中的Lint静态代码分析工具发出的,提示你应该使用strings.xml文件来存储你的字符串资源。这样做的好处是可以方便地进行国际化和本地化。你可以在res/values/strings.xml文件中添加以下内容:
```xml
<string name="du">du</string>
```
然后在你的布局文件中使用以下代码来引用这个字符串资源:
```xml
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/bnav_shape_du"
android:gravity="center"
android:text="@string/du"
android:textColor="#d2d2d2" />
```
这样就不会再出现Hardcoded string "du" 的警告了。
相关问题
<FrameLayout android:id="@+id/fl_retry" android:layout_width="match_parent" android:layout_height="150dp" android:layout_centerInParent="true" android:layout_gravity="bottom" android:layout_margin="10dp" android:background="@drawable/bnav_tab_background" android:visibility="gone" tools:visibility="visible"> <LinearLayout android:id="@+id/ll_retry" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:gravity="center" android:orientation="vertical"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/bnav_shape_du" android:gravity="center" android:text="@string/du" android:textColor="#d2d2d2" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="20dp" android:text="@string/retry_text" android:textColor="#3385ff" /> </LinearLayout> </FrameLayout> 以上代码出现 This `LinearLayout` layout or its `FrameLayout` parent is possibly unnecessary; transfer the `background` attribute to the other view 帮我改一下
<Layout
android:id="@+id/fl_retry"
android:layout_width="match_parent"
android:layout_height="150dp"
android:layout_centerInParent="true"
android:layout_margin="10dp"
android:visibility="gone"
tools:visibility="visible">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/bnav_shape_du"
android:gravity="center"
android:text="@string/du"
android:textColor="#d2d2d2" />
<TextView
android:id="@+id/tv_retry_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:text="@string/retry_text"
android:textColor="#3385ff" />
</FrameLayout>
根据警告信息,将背景属性转移到其他视图上,这里我将背景属性移植到了第一个 TextView 上,同时将第二个 TextView 加入了 ID,方便在代码中引用。
<ListView android:id="@+id/rv_list" android:layout_width="match_parent" android:layout_height="0dp" android:layout_marginTop="@dimen/qb_px_10" android:layout_marginBottom="10dp" android:minHeight="@dimen/qb_px_10" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/areaState" />给item加入边框
要给ListView的item加入边框,需要在自定义Adapter的getView()方法中设置item的背景。
1. 首先,在XML布局文件中设置item的背景,例如我们在list_item.xml的根布局LinearLayout中添加一个背景:
```xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:gravity="center_vertical"
android:padding="16dp"
android:background="@drawable/list_item_bg">
```
其中,@drawable/list_item_bg是一个定义了边框的自定义Drawable文件,我们需要在res/drawable目录下创建这个文件。
2. 在res/drawable目录下创建一个名为list_item_bg.xml的文件,定义边框的样式:
```xml
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<stroke
android:width="1dp"
android:color="#CCCCCC" />
<corners
android:radius="4dp" />
</shape>
```
其中,我们设置边框宽度为1dp,颜色为#CCCCCC,圆角半径为4dp。
3. 在自定义Adapter的getView()方法中,不需要再设置背景,因为我们已经在XML布局文件中设置了。只需要返回convertView即可:
```java
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// 创建或复用一个View
if (convertView == null) {
convertView = LayoutInflater.from(mContext).inflate(R.layout.list_item, parent, false);
}
// 获取控件并设置数据
TextView textView = convertView.findViewById(R.id.text_view);
textView.setText(mData.get(position));
return convertView;
}
```
这样,ListView的每个item就都有了边框。