samedi 23 avril 2016

Android -How to use custom list view for this list view

I'm a beginner in Android development. I have populated a listview from a prepopulated SQLite DB. But I need use a custom list view , because in here it only shows the main item and I need to populate a value to subitem on this list view. Please help me to do this task.

This is the java where list view is assigned.

public class ContactView extends AppCompatActivity {
private ListView listView;

@Override
protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.list_view);

    this.listView = (ListView) findViewById(R.id.listView);
    DBAccess databaseAccess =  DBAccess.getInstance(this);
    databaseAccess.open();
    List<String> quotes = databaseAccess.getQuotes();
    databaseAccess.close();

    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, quotes);
    this.listView.setAdapter(adapter);

}}

This is the custom list view XML

    <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://ift.tt/nIICcg"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#ffffffff">

<ImageView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/imageView2"
    android:src="@drawable/hello_avator"
    android:layout_alignParentTop="true"
    android:layout_margin="10dp"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true" />

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textAppearance="?android:attr/textAppearanceLarge"
    android:text="Company Name"
    android:id="@+id/org_name"
    android:layout_alignTop="@+id/imageView2"
    android:layout_toRightOf="@+id/imageView2"
    android:layout_alignParentRight="true"
    android:layout_alignParentEnd="true" />

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textAppearance="?android:attr/textAppearanceSmall"
    android:text="000-0000000"
    android:id="@+id/cn_num"
    android:layout_alignLeft="@+id/org_name"
    android:layout_alignStart="@+id/org_name"
    android:layout_alignParentRight="true"
    android:layout_alignParentEnd="true"
    android:layout_below="@+id/org_name"
    android:layout_alignBottom="@+id/imageView2" />

This is DataBase Access java file.

public class DBAccess {
    private SQLiteOpenHelper openHelper;
private SQLiteDatabase database;
private static DBAccess instance;

public DBAccess(Context context) {

    this.openHelper =new HelloDatabase(context);
}

public static DBAccess getInstance(Context context) {
    if (instance == null) {
        instance = new DBAccess(context);
    }
    return instance;
}

public void open() {
    this.database = openHelper.getWritableDatabase();
}

public void close() {
    if (database != null) {
        this.database.close();
    }
}



public List<String> getQuotes() {
    List<String> list = new ArrayList<>();
    Cursor cursor = database.rawQuery("SELECT org_name FROM org_name", null);
    cursor.moveToFirst();
    while (!cursor.isAfterLast()) {
        list.add(cursor.getString(0));
        cursor.moveToNext();
    }
    cursor.close();
    return list;
}

Aucun commentaire:

Enregistrer un commentaire