一覧

2017-04-04 15 views
0

私はのための画像ではなく、次のチュートリアルhttp://www.devexchanges.info/2015/03/combining-gridview-and-listview-in-one.html一覧

私は文字列の配列を使用するために、リストビューを変更しようとしています、と表示テキストを、次のよこのアプリケーションの下部。

ListView IDとしてここで何を使用するべきかはっきりしていません。私はfindViewbyIDだけを使うことができるようですが、リストビューを設定するための文字列を配列に渡したいと思います。私はここで何か簡単なものを逃している?ここで

ArrayAdapter<String> adapter =new ArrayAdapter<String>(this, R.layout.item_grid, CORPS); 
    ListView lv = (ListView)findViewById(????); 
    lv.setAdapter(adapter); 

あなたの目標は、唯一の各行に1つの文字列を使用して、あなたは、単にこれを行うことができます項目のリストとして表示する場合は、コード

public class ListViewActivity extends Activity { 

private ExpandableHeightGridView gridView; 
private ListView listView; 

//drawables array for listview 
private static final int[] corpImage = { R.drawable.apple, R.drawable.blackberry_logo, 
     R.drawable.google, R.drawable.microsoft, R.drawable.mozilla, R.drawable.oracle }; 

static final String[] CORPS = new String[] { "Microsoft", "Google", "Apple" }; 

//drawables array for gridview 
private static final int[] osImage = { R.drawable.bbos, R.drawable.firefox_os, 
     R.drawable.ic_launcher, R.drawable.ios, R.drawable.tizen, R.drawable.ubuntu_touch, 
     R.drawable.wpos, R.drawable.symbian }; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    listView = (ListView) findViewById(R.id.list); 
    addGridViewAsListViewHeader(); 

    setAdapters(); 
} 

/** 
* set header for listview (it's a gridview) 
*/ 
@SuppressLint("InflateParams") 
private void addGridViewAsListViewHeader() { 
    View header = (View) getLayoutInflater().inflate(R.layout.layout_gridview, null); 
    listView.addHeaderView(header); 

    gridView = (ExpandableHeightGridView) header.findViewById(R.id.gridview); 

    // set expand to show all gridview rows 
    gridView.setExpanded(true); 
} 


/** 
* set adapters for list view and gridview 
*/ 
private void setAdapters() { 
    // convert int array to Integer array by apache common lang library 
    Integer[] osImageList = ArrayUtils.toObject(osImage); 
    Integer[] corpImageList = ArrayUtils.toObject(corpImage); 

    //Added by me but not working correctly 
    //ArrayAdapter<String> adapter =new ArrayAdapter<String>(this, R.layout.item_grid, CORPS); 
    //ListView lv = (ListView)findViewById(R.id.image); 
    // lv.setAdapter(adapter); 

    // set listview and gridview adapters 
    CustomAdapter gridViewAdapter = new CustomAdapter(this, R.layout.item_grid, R.id.image, osImageList); 
    CustomAdapter listViewAdapter = new CustomAdapter(this, R.layout.item_grid, R.id.image, corpImageList); 

    gridView.setAdapter(gridViewAdapter); 
    listView.setAdapter(listViewAdapter); 

} 

}

答えて

0

です以下のように配列アダプターを使用します。

ArrayList<String> companies = new ArrayList<>(); 
companies.add("Google"); 
companies.add("Microsoft"); 
// Find a reference to the {@link ListView} in the layout 
ListView companiesListView = (ListView) findViewById(R.id.list); 

// Create a new {@link ArrayAdapter} of earthquakes 
ArrayAdapter<String> adapter = new ArrayAdapter<String>(
     this, android.R.layout.simple_list_item_1, earthquakes); 

// Set the adapter on the {@link ListView} 
// so the list can be populated in the user interface 
companiesListView.setAdapter(adapter); 

レイアウトファイルでは、このアイテムのリストを表示するリストビューを宣言する必要があります。この場合、そのリストビューのidは "list"となります