2016-03-22 11 views
0

Ich bin ein sehr Anfänger Android-Entwickler und arbeite an einer sehr einfachen Anwendung, liest Einträge aus SQLite-Datenbank und ordnet sie zu einem ListView, Anzeige der CUSTOMER_NAME Feld, wenn die Schaltfläche "Alle auflisten" ist angeklickt. Ich habe eine Reihe von verschiedenen Tutorials verfolgt, habe aber Probleme mit dem Umfang.Cursor-Adapter und SQLite-Lösung mit Fragmenten

Bearbeiten:: Wie gehe ich mit der Fertigstellung der Zuordnung von Cursor zu ListView?

Jede Hilfe, die Sie zur Verfügung stellen können, wird sehr geschätzt!

Bisher mein DBHelper sieht getAllCustomer Methode wie:

public Cursor getAllCustomers(){ 
    List<Customer> customers=new LinkedList<Customer>(); 

    String query="SELECT * FROM "+TABLE_NAME; 

    SQLiteDatabase db=this.getWritableDatabase(); 
    Cursor cursor= db.rawQuery(query, null); 

    return cursor; 
} 

Mein fragment_list.xml aussieht (Listview sehen):

<LinearLayout 
    android:orientation="vertical" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_alignParentTop="true" 
    android:layout_centerHorizontal="true"> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textAppearance="?android:attr/textAppearanceLarge" 
     android:text="List Customers" 
     android:id="@+id/textView3" 
     android:layout_gravity="center_horizontal" /> 

    <ListView 
     android:layout_width="wrap_content" 
     android:layout_height="381dp" 
     android:layout_centerHorizontal="true" 
     android:layout_alignParentTop="true" 
     android:id="@+id/listView" 
     android:layout_above="@+id/btnAdd" /> 

    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="List All" 
     android:id="@+id/btnGetAll" 
     android:layout_alignParentBottom="true" 
     android:layout_toRightOf="@+id/btnAdd" /> 

</LinearLayout> 

Und meinen CustomersFragment.java schließlich

public class CustomersFragment extends Fragment { 

public CustomersFragment() { 

} 

public static CustomersFragment newInstance() { 
    CustomersFragment fragment = new CustomersFragment(); 
    Bundle args = new Bundle(); 
    fragment.setArguments(args); 
    return fragment; 
} 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 
    View rootView = inflater.inflate(R.layout.fragment_search, container, false); 
    return rootView; 
} 

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

    Button bGetAll = (Button) getActivity().findViewById(R.id.btnGetAll); 
    bGetAll.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      CustomerrDBSetup db = new CustomerrDBSetup(getActivity()); 
      Cursor cursor = db.getAllCustomers(); 
      String[] from = new String[] { "customer_name" }; 

     } 
    }); 
    } 
} 
+0

Und was ist Ihre Frage zu bekommen? –

+0

Sorry, ich habe gerade aktualisiert – Bryce

Antwort

0

Ihre Funktion sollte so aussehen

public List<Customer> getAllCustomers(){ 
    List<Customer> customers = new LinkedList<Customer>(); 
    String query="SELECT * FROM " + TABLE_NAME; 
    SQLiteDatabase db=this.getWritableDatabase(); 
    Cursor cursor= db.rawQuery(query, null); 

    if (cursor.moveToFirst()) { 
      do { 
       Customer customer = customerFromCursor(cursor); 
       customers.add(cutomer); 
      } while (cursor.moveToNext()); 
     } 

    //don't forget to close cursor after use it 

    if (cursor != null) { 
      cursor.close(); 
     } 

    return customers; 
} 


public Customer customerFromCursor(Cursor cursor){ 
    Customer ret = new Customer(); 

    //put your getter here 

    //ex: 
    ret.setName(cursor.getString(cursor.getColumnIndex(yourColumName))); 

    //..... 
    return ret; 
    } 

auf diese Weise alle Daten für Ihre Listenansicht

+0

Vielen Dank für die Antwort. Wie kann ich diese Daten über einen ArrayAdapter binden? – Bryce

+0

[hier] (http://theopentutorials.com/tutorials/android/listview/android-custom-listview-with-image-and-text-using-arrayadapter/) können Sie eine gute Anleitung finden, wie Sie dies tun – khyper