1

我正在嘗試構建記事本應用程序。在我的佈局中有兩個TextView。第一個文本視圖只顯示一個字符串「Your Saved Entries」,其中第二個TextView顯示已保存條目的標題。我的問題是第一個TextView重複保存條目的所有標題。我希望字符串「您保存的條目」出現一次,然後顯示保存條目的所有標題。請幫我在重複文本視圖之前添加文本視圖

Your Saved Entries is repeating with Entry titles

這裏是我的XML文件

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 

     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:orientation="vertical" 
     android:paddingRight="3dp" 
     android:paddingLeft="3dp" 
     android:paddingTop="15dp" 
     android:paddingBottom="10dp" 
     > 
    <TextView xmlns:android="http://schemas.android.com/apk/res/android" 

     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:gravity="center" 
     android:text="@string/intro" /> 


<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/postslist" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:padding="8dp" 
    android:textSize="20sp" 
    android:textColor="@android:color/white" 

    android:gravity="center_vertical" 
    /> 

</LinearLayout> 

這裏是我的活動文件

package com.ex.fastnotes; 

import android.os.AsyncTask; 
import android.os.Bundle; 
import android.app.ListActivity; 
import android.content.Intent; 
import android.database.Cursor; 
import android.view.Menu; 
import android.view.MenuInflater; 
import android.view.MenuItem; 
import android.view.View; 
import android.widget.AdapterView; 
import android.widget.CursorAdapter; 
import android.widget.ListView; 
import android.widget.SimpleCursorAdapter; 
import android.widget.AdapterView.OnItemClickListener; 

public class Notesli extends ListActivity { 

    public static final String ROW_ID = "row_id"; 
    private ListView conListView; 
    private CursorAdapter conAdapter; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     conListView=getListView(); 
     conListView.setOnItemClickListener(viewConListener); 

     // map each name to a TextView 
     String[] from = new String[] { "name" }; 
     int[] to = new int[] { R.id.postslist }; 

     conAdapter = new SimpleCursorAdapter(Notesli.this, R.layout.tlist, null, from, to); 
     setListAdapter(conAdapter); // set adapter 
    } 


    @Override 
    protected void onResume() 
    { 
     super.onResume(); 
     new GetContacts().execute((Object[]) null); 
    } 


    @Override 
    protected void onStop() 
    { 
     Cursor cursor = conAdapter.getCursor(); 

     if (cursor != null) 
      cursor.deactivate(); 

     conAdapter.changeCursor(null); 
     super.onStop(); 
    }  


    private class GetContacts extends AsyncTask<Object, Object, Cursor> 
    { 
     DatabaseConnector dbConnector = new DatabaseConnector(Notesli.this); 

     @Override 
     protected Cursor doInBackground(Object... params) 
     { 
      dbConnector.open(); 
      return dbConnector.getAllContacts(); 
     } 

     @Override 
     protected void onPostExecute(Cursor result) 
     { 
      conAdapter.changeCursor(result); // set the adapter's Cursor 
      dbConnector.close(); 
     } 
    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) 
    { 
     super.onCreateOptionsMenu(menu); 
     MenuInflater inflater = getMenuInflater(); 
     inflater.inflate(R.menu.corefile, menu); 
     return true; 
    } 

    @Override 
    public boolean onOptionsItemSelected(MenuItem item) 
    { 
     Intent addContact = new Intent(Notesli.this, Corefile.class); 
     startActivity(addContact); 
     return super.onOptionsItemSelected(item); 
    } 

    OnItemClickListener viewConListener = new OnItemClickListener() 
    { 
     public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,long arg3) 
     {   
      Intent viewCon = new Intent(Notesli.this, ViewNotes.class); 
      viewCon.putExtra(ROW_ID, arg3); 
      startActivity(viewCon); 
     } 
    };  

} 

回答

0

你需要通過擴展任何適配器類來實現你的CustomArrayAdapter。從那你必須檢查使用任何標誌,無論是否保存條目,如果是的話,然後顯示你的第一個textview,否則只是空/隱藏你的textview。

自定義對於您的自定義類中包含數據的列表項容器,其中包含一個布爾對象以標識當前的保存條目。如果在編輯/創建新筆記時將標記對象值設置爲true,則必須迭代所有其他列表項並將false設置爲所有項標記,然後將當前項標記設置爲true。

現在您必須實現getView(),無論您的Adapter如何擴展它。在這種方法中,通過獲取基於位置的列表項目來檢查值,如果它爲真,則獲取項目標誌值,然後將您的第一個textview設置爲可見,否則將其設置爲其他設置。