【问题标题】:Android - TextViews not showing up in ListViewAndroid - TextViews 未显示在 ListView 中
【发布时间】:2016-03-17 05:14:04
【问题描述】:

我遇到了一个问题,即我的 TextView 都没有显示在 ListView 中。我不确定这是布局问题还是 java 类本身的问题。这里有两张图片,一张是在数据输入数据库后运行的应用程序,另一张是它的样子。

ListView中每一行数据的布局

ListView 的片段(删除按钮出现,但 TextView 不出现)

row_layout.xml

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

    <TextView
        android:layout_width="123dp"
        android:layout_height="wrap_content"
        android:id="@+id/resultTeamNumber"
        android:text="Here Number"
        android:textSize="18dp"
        android:layout_alignParentTop="true"
        android:layout_alignParentStart="true" />

    <TextView
        android:layout_width="100dp"
        android:layout_height="wrap_content"
        android:id="@+id/textPortcullis"
        android:text="Portcullis:"
        android:layout_above="@+id/textChevalFrise"
        android:layout_alignParentStart="true" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/resultPortcullis"
        android:text="Yes/No"
        android:singleLine="false"
        android:layout_below="@+id/resultTeamNumber"
        android:layout_marginLeft="110dp" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/textChevalFrise"
        android:text="Cheval de Frise:"
        android:layout_below="@+id/resultPortcullis"
        android:layout_alignParentStart="true"
        android:singleLine="false" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/resultChevalFrise"
        android:text="Yes/No"
        android:singleLine="false"
        android:layout_below="@+id/resultPortcullis"
        android:layout_alignStart="@+id/resultPortcullis" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/textMoat"
        android:singleLine="false"
        android:layout_below="@+id/textChevalFrise"
        android:layout_alignParentStart="true"
        android:text="Moat:" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/resultMoat"
        android:text="Yes/No"
        android:singleLine="false"
        android:layout_below="@+id/resultChevalFrise"
        android:layout_alignStart="@+id/resultChevalFrise" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/textRamparts"
        android:text="Ramparts:"
        android:singleLine="false"
        android:layout_below="@+id/textMoat"
        android:layout_alignParentStart="true" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/resultRamparts"
        android:text="Yes/No"
        android:singleLine="false"
        android:layout_above="@+id/textDrawbridge"
        android:layout_alignStart="@+id/resultMoat" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/textDrawbridge"
        android:text="Drawbridge:"
        android:singleLine="false"
        android:layout_below="@+id/textRamparts"
        android:layout_alignParentStart="true" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/resultDrawbridge"
        android:text="Yes/No"
        android:singleLine="false"
        android:layout_below="@+id/resultRamparts"
        android:layout_alignStart="@+id/resultRamparts" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/textSallyPort"
        android:text="Sally Port:"
        android:singleLine="false"
        android:layout_below="@+id/textDrawbridge"
        android:layout_alignParentStart="true" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/resultSallyPort"
        android:singleLine="false"
        android:layout_below="@+id/resultDrawbridge"
        android:layout_alignStart="@+id/resultDrawbridge"
        android:text="Yes/No" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/textRockWall"
        android:text="Rock Wall:"
        android:singleLine="false"
        android:layout_alignTop="@+id/resultPortcullis"
        android:layout_toEndOf="@+id/resultPortcullis"
        android:layout_marginStart="34dp" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/resultRockWall"
        android:singleLine="false"
        android:text="Yes/No"
        android:layout_marginStart="46dp"
        android:layout_above="@+id/resultRockTerrain"
        android:layout_toEndOf="@+id/textRockTerrain" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/textRockTerrain"
        android:text="Rock Terrain:"
        android:singleLine="false"
        android:layout_below="@+id/textRockWall"
        android:layout_alignStart="@+id/textRockWall" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/resultRockTerrain"
        android:singleLine="false"
        android:text="Yes/No"
        android:layout_alignBottom="@+id/textRockTerrain"
        android:layout_alignStart="@+id/resultRockWall" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/textLowBar"
        android:text="Low Bar:"
        android:singleLine="false"
        android:layout_above="@+id/resultRamparts"
        android:layout_alignStart="@+id/textRockTerrain" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/resultLowBar"
        android:singleLine="false"
        android:text="Yes/No"
        android:layout_below="@+id/resultRockTerrain"
        android:layout_alignStart="@+id/resultRockTerrain" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textColor="#fff"
        android:background="@color/colorPrimary"
        android:text="Delete"
        android:id="@+id/buttonDelete"
        android:layout_below="@+id/textLowBar"
        android:layout_toEndOf="@+id/textLowBar"
        android:layout_above="@+id/resultSallyPort" />
</RelativeLayout>

ScoutFragment.java

import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.graphics.Color;
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentTransaction;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ListView;

/**
 * A simple {@link Fragment} subclass.
 */
public class ScoutFragment extends Fragment {

    FloatingActionButton addDataScout;
    ListView eListScoutInfo;
    SQLiteDatabase sqLiteDatabase;
    DatabaseHelper databaseHelper;
    Cursor cursor;
    ListScoutInfoAdapter listScoutInfoAdapter;

    public ScoutFragment() {
        // Required empty public constructor
    } //End of ScoutFragment

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment_scout, null, false);
        view.setBackgroundColor(Color.WHITE);
        eListScoutInfo = (ListView) view.findViewById(R.id.listScoutInfo);
        listScoutInfoAdapter = new ListScoutInfoAdapter(getActivity().getApplicationContext(), R.layout.row_layout);
        eListScoutInfo.setAdapter(listScoutInfoAdapter);
        databaseHelper = new DatabaseHelper(getActivity().getApplicationContext());
        sqLiteDatabase = databaseHelper.getReadableDatabase();
        cursor = databaseHelper.getInformation(sqLiteDatabase);

        //Checks if information is available in cursor
        if(cursor.moveToFirst()){
            do {
                //Declare all strings
                String teamNumber, portcullis, chevalFrise, moat, ramparts, drawbridge, sallyPort, rockWall, rockTerrain, lowBar;

                //Get strings from cursor
                teamNumber = cursor.getString(cursor.getColumnIndex(DatabaseContract.NewDataInfo.COL_NUMBER));
                portcullis =  cursor.getString(cursor.getColumnIndex(DatabaseContract.NewDataInfo.COL_PORTCULLIS));
                chevalFrise = cursor.getString(cursor.getColumnIndex(DatabaseContract.NewDataInfo.COL_CHEVAL_FRISE));
                moat = cursor.getString(cursor.getColumnIndex(DatabaseContract.NewDataInfo.COL_MOAT));
                ramparts = cursor.getString(cursor.getColumnIndex(DatabaseContract.NewDataInfo.COL_RAMPARTS));
                drawbridge = cursor.getString(cursor.getColumnIndex(DatabaseContract.NewDataInfo.COL_DRAWBRIDGE));
                sallyPort = cursor.getString(cursor.getColumnIndex(DatabaseContract.NewDataInfo.COL_SALLY_PORT));
                rockWall = cursor.getString(cursor.getColumnIndex(DatabaseContract.NewDataInfo.COL_ROCK_WALL));
                rockTerrain = cursor.getString(cursor.getColumnIndex(DatabaseContract.NewDataInfo.COL_ROCK_TERRAIN));
                lowBar = cursor.getString(cursor.getColumnIndex(DatabaseContract.NewDataInfo.COL_LOW_BAR));

                //Get methods from DatabaseProvider
                DatabaseProvider databaseProvider = new DatabaseProvider(teamNumber, portcullis, chevalFrise, moat, ramparts,
                        drawbridge, sallyPort, rockWall, rockTerrain, lowBar);

                //Pass objects to add method
                listScoutInfoAdapter.add(databaseProvider);
                listScoutInfoAdapter.notifyDataSetChanged();
            } while (cursor.moveToNext());
        } //End of if statement

        //Setups Floating Action Button
        addDataScout = (FloatingActionButton) view.findViewById(R.id.fab);
        addDataScout.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                AddScoutDataFragment fragment = new AddScoutDataFragment();
                FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction();
                fragmentTransaction.setCustomAnimations(R.anim.enter_from_right, R.anim.exit_to_left, R.anim.enter_from_left, R.anim.exit_to_right);
                fragmentTransaction.replace(R.id.fragment_container, fragment);
                fragmentTransaction.commit();
            } //End of onClick
        }); //End of setOnClickListener
        return view;
    } //End of onCreateView
} //End of class

我认为问题不在于数据库显示数据,因为 ListView 中的某些 TextView 甚至不使用数据库内部的数据。

【问题讨论】:

  • 更改您的主题或设置黑色 TextColor。
  • 没有必要删除和重新发布您的问题。编辑它会将它撞到活动队列的顶部。
  • 它可以了,不过现在另一个问题是我的吊桥数据没有弹出,可能是数据库问题,我会调查一下,谢谢
  • 您遇到了主题问题
  • 你看不到文字,因为文字颜色是白色

标签: java android database listview android-fragments


【解决方案1】:

设置 textcolor 中的 row_layout.xml 文件 textview:

 <TextView
    android:layout_width="123dp"
    android:layout_height="wrap_content"
    android:id="@+id/resultTeamNumber"
    android:text="Here Number"
    android:textSize="18dp"
    android:layout_alignParentTop="true"
    android:layout_alignParentStart="true" 
    android:textColor="@android:color/black"

/>

【讨论】:

  • 这种方法并不好,因为他必须在每个文本视图中更改文本颜色
【解决方案2】:

这是你的主题问题,可能在你的主题中设置为白色的文本颜色会改变这些

<item name="android:textColorPrimary">@color/white</item>
<item name="android:textColorSecondary">@color/white</item>

改成黑色

【讨论】:

    【解决方案3】:

    在最后一个列表视图上设置你的适配器......

    【讨论】:

      猜你喜欢
      • 2022-01-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-21
      • 1970-01-01
      • 2020-06-14
      • 2021-06-03
      相关资源
      最近更新 更多