2016-04-23 11 views
0

私はAndroid開発の初心者です。私はあらかじめ用意されたSQLite DBからリストビューを作成しました。しかし、私はカスタムリストビューを使用する必要があります。なぜなら、ここではメインアイテムのみが表示され、このリストビューのサブアイテムに値を設定する必要があるからです。この仕事を手伝ってください。Android - このリストビューのカスタムリストビューを使用する方法

これは、リストビューが割り当てられているJavaです。

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); 

}} 

これはこれは、データベースアクセスのJavaファイルでカスタムリストビューのXML

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
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" /> 

です。

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; 
} 
+0

これを確認してくださいhttp://theopentutorials.com/tutorials/android/listview/android-custom-listview-with-image-and-text-using-baseadapter/ –

答えて

0

ArrayAdapterまたは...アダプタを拡張するカスタムアダプタを作成する必要があります。カスタムアダプターでは、値を設定する必要があります。 Checkout this article

0

代わりにデフォルトArrayAdapterを使用して、あなたは(あなたがしたい場合は、またArrayAdapterから拡張することができます)BaseAdapterクラスを拡張して、getView()にカスタムビューを定義することで、カスタムアダプタを作成する必要があります。

public class MyCustomAdapter extends ArrayAdapter<String> { 
    .... 

    public MyCustomAdapter(....) { 
    super(...); 
    ... 
    } 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
    LayoutInflater inflater = (LayoutInflater) context 
     .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 

    // inflate the custom view for the row and set the UI 
    View rowView = inflater.inflate(R.layout.my_custom_list_row, parent, false); 

    return rowView; 
    } 
} 

あなたはthis tutorialでカスタムアダプターについての詳細を読むことができます。

関連する問題