文本大小和背景颜色不变.更改xml代码时也不变.底部添加了图像链接



我已经创建了一个自定义适配器。。。文本大小没有更改。。。代码显示没有错误。。。在我的设备上运行良好。。。在adroid工作室中,颜色以拆分模式显示在设计上。。。但在手机上没有纯白bg找不到类似的东西。。请帮忙地震活动.java

package com.example.earthquake_udacity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import androidx.appcompat.app.AppCompatActivity;
import java.util.ArrayList;
public class EarthquakeActivity extends AppCompatActivity {
public static final String LOG_TAG = EarthquakeActivity.class.getName();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.earthquake_activity);
// Create a fake list of earthquake locations.
ArrayList<list_data_type> earthquakes = new ArrayList<>();
earthquakes.add(new list_data_type("11/2/21","4","San Francisco"));
earthquakes.add(new list_data_type("11/2/20","5","London"));
earthquakes.add(new list_data_type("11/3/21","3","Tokyo"));
earthquakes.add(new list_data_type("11/4/88","2","Mexico City"));
//        earthquakes.add(new list_data_type("6","Moscow",3/2/21));
//        earthquakes.add(new list_data_type("5.3","Rio de Janeiro",5/12/17));
//        earthquakes.add(new list_data_type("3.1","Paris",4/8/18));
// Find a reference to the {@link ListView} in the layout
ListView earthquakeListView = (ListView) findViewById(R.id.list);
// Create a new {@link ArrayAdapter} of earthquakes
itemsadapter adapter = new itemsadapter(this, earthquakes ,R.layout.list_item_layout);
// Set the adapter on the {@link ListView}
// so the list can be populated in the user interface
earthquakeListView.setAdapter(adapter);
}
}

地震活动.xml

<?xml version="1.0" encoding="utf-8"?>
<ListView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/list"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"/>

list_data_type.java

package com.example.earthquake_udacity;
public class list_data_type
{
private String location;
private String date;
private String magnitude;
public list_data_type( String date,String magnitude,String location) {
this.location = location;
this.date = date;
this.magnitude = magnitude;
}
public String getLocation() {
return location;
}
public String getDate() {
return date;
}
public String getMagnitude() {
return magnitude;
}
}

itemsadapter.java

package com.example.earthquake_udacity;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import java.util.ArrayList;
public class itemsadapter extends ArrayAdapter {
public itemsadapter(@NonNull Context context, ArrayList<list_data_type> obj, int resource) {
super(context, resource,obj);
}

public View getView(int position, View convertView, ViewGroup parent) {
// Check if the existing view is being reused, otherwise inflate the view
View listItemView = convertView;
if (listItemView == null) {
listItemView = LayoutInflater.from(getContext()).inflate(
R.layout.list_item_layout, parent, false);
}
list_data_type currentItem = (list_data_type) getItem(position);
TextView mag_tv = (TextView) listItemView.findViewById(R.id.magnitude_id);
mag_tv.setText(currentItem.getMagnitude());
TextView loc_tv = (TextView) listItemView.findViewById(R.id.location_id);
loc_tv.setText(currentItem.getLocation());
TextView date_tv = (TextView) listItemView.findViewById(R.id.date_id);
date_tv.setText(currentItem.getDate());
return listItemView;
}
}

list_item_layout.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="16dp"
android:orientation="horizontal">
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:background="@color/teal_200"
android:layout_weight="1"
android:textSize="42sp"
android:id="@+id/magnitude_id"
/>
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:textSize="42sp"
android:id="@+id/location_id"
/>
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:textSize="42sp"
android:layout_gravity="end"
android:id="@+id/date_id"
/>

</LinearLayout>

清单

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.earthquake_udacity">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.Earthquake_udacity">
<activity android:name=".EarthquakeActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>

主题.xml

<resources xmlns:tools="http://schemas.android.com/tools">
<!-- Base application theme. -->
<style name="Theme.Practica1" parent="Theme.AppCompat.Light.NoActionBar">
<!-- Primary brand color. -->
<item name="colorPrimary">@color/purple_500</item>
<item name="colorPrimaryVariant">@color/purple_700</item>
<item name="colorOnPrimary">@color/white</item>
<!-- Secondary brand color. -->
<item name="colorSecondary">@color/teal_200</item>
<item name="colorSecondaryVariant">@color/teal_700</item>
<item name="colorOnSecondary">@color/black</item>
<!-- Status bar color. -->
<item name="android:statusBarColor" tools:targetApi="l">?attr/colorPrimaryVariant</item>
<!-- Customize your theme here. -->
</style>
</resources>

我没有改变任何其他。。。其他事情都是默认的感谢您的帮助。

在此处输入图像描述

确保您的主题像下面这样轻盈:

<style name="Theme.Practica1" parent="Theme.AppCompat.Light.NoActionBar">

而color_primary不是黑色。

在list_item.layout.xml文件中,删除date_id TextView:的背景

android:background="@color/cardview_dark_background"

同时删除LinearLayout背景:

android:background="@color/white"

最新更新