1

메모장 응용 프로그램을 빌드하려고합니다. 내 레이아웃에는 두 개의 TextView가 있습니다. 첫 번째 텍스트보기에는 "저장된 항목"이라는 문자열 만 표시되며 두 번째 TextView는 저장된 항목의 제목을 표시합니다. 내 문제는 첫 번째 TextView가 저장된 항목의 모든 제목으로 반복된다는 것입니다. "Your Saved Entries"문자열이 한 번 나타나면 저장된 항목의 모든 제목이 표시됩니다. 나에게반복 텍스트보기 전에 텍스트보기 추가

Your Saved Entries is repeating with Entry titles

도와주세요 여기에

<?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> 

가 여기 내 활동 파일

당신은 어떤 어댑터 클래스를 확장하여 CustomArrayAdapter를 구현해야
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

내 XML 파일입니다. 그걸로 당신은 모든 항목을 여부를 저장 한 항목 여부를 확인하고 첫 번째 textview 그렇지 않으면 비어있는/텍스트보기를 숨기려면 표시 여부를 확인해야합니다.

사용자 지정 만들기 현재 저장 항목을 식별하기 위해 하나의 부울 개체가있는 사용자 지정 클래스의 데이터가 들어있는 목록 항목 컨테이너의 경우. 이 값을 true로 설정하기 전에 새 메모를 편집/작성하면 다른 모든 목록 항목을 반복하고 모든 항목 플래그에 false를 설정 한 다음 현재 항목 플래그를 true로 설정해야합니다.

이제 어댑터에서 확장하는 getView()를 구현해야합니다. 이 메소드에서 위치를 기준으로 목록 항목을 가져 와서 항목 플래그 값을 얻는 방법으로 값을 확인한 다음 첫 번째 텍스트보기를 표시로 설정하고 그렇지 않으면 다른 항목에 대해 사라지도록 설정합니다.