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