2012-05-27 3 views
0

내 문제에 대한 답을 찾지 못했습니다. 일부 TextViews 및 1 ListView가있는 기본 XML이 있습니다. 문제는 목록이 내 주 XML에 표시되어 목록 뷰 외부에있는 Texview를 추가 할 때 발생합니다. 각 항목은 총 텍스트 뷰와 목록이 없습니다 하단에있는 모든 XML 레이아웃에서 이동, 그래서 나는 무엇 여기 당신의 도움이내 ListView가 XML에서 모든 항목을 추가하는 이유는 무엇입니까?

감사

고급 잘못

들으을하고있는 중이 야 확실하지 않다 내 파일

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:orientation="vertical" > 
<TableLayout 
    android:id="@+id/TableLayout01" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal" 
    android:stretchColumns="1" > 
    <TableRow> 
     <TextView 
      android:id="@+id/textView2" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Total Expenses $" 
      android:textColor="@android:color/white" 
      android:textSize="25sp" 
      android:textStyle="bold" /> 
     <TextView 
      android:id="@+id/tvTotalGastos" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="0" 
      android:textColor="@android:color/white" 
      android:textSize="25sp" 
      android:textStyle="bold" /> 
    </TableRow> 
</TableLayout> 
<TableLayout 
    android:id="@+id/TableLayout02" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_below="@+id/TableLayout01" 
    android="" 
    android:orientation="horizontal" > 
    <TableRow> 
     <TextView 
      android:layout_width="0dip" 
      android:layout_height="wrap_content" 
      android:layout_margin="4dip" 
      android:layout_weight="1" 
      android:padding="10dip" 
      android:text="Date" 
      android:textColor="@android:color/white" /> 
     <TextView 
      android:layout_width="0dip" 
      android:layout_height="wrap_content" 
      android:layout_margin="4dip" 
      android:layout_weight="1" 
      android:padding="10dip" 
      android:text="Description" 
      android:textColor="@android:color/white" /> 
     <TextView 
      android:layout_width="0dip" 
      android:layout_height="wrap_content" 
      android:layout_margin="4dip" 
      android:layout_weight="1" 
      android:padding="10dip" 
      android:text="Amount" 
      android:textColor="@android:color/white" /> 
    </TableRow> 
</TableLayout> 
<ListView 
    android:id="@+id/listview" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" > 
</ListView> 

내 행 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="horizontal" 
android:paddingBottom="6dip" 
android:paddingTop="4dip" > 


    <TextView 
     android:id="@+id/tvDate" 
     android:layout_width="0dip" 
     android:layout_height="wrap_content" 
     android:layout_margin="4dip" 
     android:layout_weight="1" 
     android:padding="10dip" 
     android:text="Date" /> 

    <TextView 
     android:id="@+id/tvDescription" 
     android:layout_width="0dip" 
     android:layout_height="wrap_content" 
     android:layout_margin="4dip" 
     android:layout_weight="1" 
     android:padding="10dip" 
     android:text="Description" /> 

    <TextView 
     android:id="@+id/tvAmount" 
     android:layout_width="0dip" 
     android:layout_height="wrap_content" 
     android:layout_margin="4dip" 
     android:layout_weight="1" 
     android:padding="10dip" 
     android:text="Amount" /> 


</LinearLayout> 

내 자바 클래스 문제가 해결

public class GastosListActivity extends ListActivity { 

private DatabaseHandler dbh; 
private List<Datos> datos; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    super.onCreate(savedInstanceState); 
    //setContentView(R.layout.gastoslist); 

    //ListView list2= (ListView) findViewById(R.id.listview); 

    // new obj databasehandler 
    dbh = new DatabaseHandler(this); 
    datos = dbh.getAllData(); 

    ArrayList<Map<String, String>> list = buildData(); 
    String[] from = { "Date", "Description","Amount" }; 
    int[] to = { R.id.tvDate, R.id.tvDescription,R.id.tvAmount }; 

    SimpleAdapter adapter = new SimpleAdapter(this, list, 
      R.layout.gastoslist, from, to); 
    setListAdapter(adapter); 

} 
private ArrayList<Map<String, String>> buildData() { 

    ArrayList<Map<String, String>> list = new ArrayList<Map<String, String>>(); 
    for (Datos dn : datos) {    
     list.add(putData(dn.get_fecha(), dn.get_concepto(),  dn.get_cantidad())); 


    } 
    return list;  

} 

private HashMap<String, String> putData(String date, String description, String amount) { 
    HashMap<String, String> item = new HashMap<String, String>(); 
    item.put("Date", date); 
    item.put("Description", description); 
    item.put("Amount", amount); 
    return item; 
} 



} 

답변

0

, 내가 ArrayList를

dbh = new DatabaseHandler(this); 


     Cursor cursor = dbh.obtenerDatos(); 
     String[] from = new String[] { dbh.COLUMN_FECHA, 
       dbh.COLUMN_CONCEPTO, dbh.COLUMN_CANTIDAD }; 
     int[] to = new int[] { R.id.tvDate, R.id.tvDescription, 
       R.id.tvAmount }; 

     cursorAdapter = new SimpleCursorAdapter(this, R.layout.row, cursor, 
       from, to); 

     listContent.setAdapter(cursorAdapter); 
대신 커서를 사용하여 코드를 변경
관련 문제