2016-11-30 21 views
1

私は以前の回答でListViewsをよく見てきましたが、私の問題の解決策を見つけることができません。主に、SQLiteデータベースからデータの配列を正常に取得したにもかかわらず、データが存在しないときのTextViewは、リストが正常に取り込まれても表示されたままです。私は次のように歴史の活動の前のユーザー入力を表示しようとしているTextViewはListViewの後ろに表示され続けます

HistoryActivity.java

public class HistoryActivity extends ListActivity { 

@Override 
protected void onCreate(@Nullable Bundle savedInstanceState) { 

    SimpleCursorAdapter mAdapter; 

    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_history); 

    // progress bar 
    // Create a progress bar to display while the list loads 
    ProgressBar progressBar = new ProgressBar(this); 
    progressBar.setLayoutParams(new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, 
      RelativeLayout.LayoutParams.WRAP_CONTENT)); 
    progressBar.setIndeterminate(true); 
    getListView().setEmptyView(progressBar); 

    // Must add the progress bar to the root of the layout 
    ViewGroup root = (ViewGroup) findViewById(android.R.id.content); 
    root.addView(progressBar); 

    ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(
      this, 
      android.R.layout.simple_list_item_1, 
      array); 
    setListAdapter(arrayAdapter); 
} 

activity_history.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"> 


    <ListView android:id="@android:id/list" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:dividerHeight="1dp" 
     android:layout_weight="1"/> 

    <TextView 
     android:text="Nothing saved. Try to answer some questions now!" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_margin="12dp" 
     android:id="@android:id/empty" 
    /> 

</RelativeLayout> 

を前のSOの回答からは、I .xmlファイルのIDが正しいことを確認し、ListActivityを拡張するときにわかっているものから.setEmptyView()を使用する必要はありません。

私はおそらく何か基本的なことを忘れてしまったので、どんな支援も大歓迎です。

ありがとうございます!

答えて

0

私はあなたの問題を正しく理解していませんでした。リストがアイテムでいっぱいになっても、テキストビューは引き続き表示されます。

  • 私はあなただけのTextView

    のTextView emptyView =(TextViewの)findViewById(R.id.empty)のリファレンスを取得すると思います。

  • そしてかどうかを確認(はlist.size> 0)

    はTextViewに見えない

    emptyView.setVisibility(View.GONE)します。

  • 他にも表示させるsetVisibility(View.VISIBLE);

+0

私は 'TextView emptyView =(TextView)findViewById(android.R.id.empty)を実装しました。 if(array.length> 0){ emptyView.setVisibility(View.GONE); } else { emptyView.setVisibility(View.VISIBLE); } ' しかし、役に立たない。リストが空であるときのためのTextViewは、リストが入力されても引き続き表示されます。 –

0

あなたはあなたのリストが空でない場合のTextViewにsetVisibility="gone"に持っており、あなたのリストが空の場合、それを示しています。

関連する問題