我需要使用ArrayAdapter在GridView中显示ArrayList <string>

时间:2017-03-15 00:10:48

标签: java android gridview arraylist android-arrayadapter

我需要使用ArrayAdapter在GridView中显示ArrayList,但它目前无效。

这是我的阵列列表:

    ArrayList<String> num = new ArrayList<>();
    num.add("Zero");
    num.add("one");
    num.add("Two");
    num.add("Three");
    num.add("Four");
    num.add("Five");
    num.add("Six");
    num.add("Seven");
    num.add("Eight");
    num.add("Nine");
    num.add("Ten");

这是我目前用来填充GridView的代码:

GridView rootView = (GridView) findViewById(R.id.activity_numbers);
ArrayAdapter<String> array = new ArrayAdapter<>(this, 
android.R.layout.simple_list_item_1, num);
rootView.setAdapter(array);

2 个答案:

答案 0 :(得分:2)

这是你可以做到的一种方式。

    gridView = (GridView) findViewById(R.id.gridView1);

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

    gridView.setAdapter(adapter);

另一个例子:

package com.javacodegeeks.android.androidgridviewexample;

import android.app.Activity;
import android.os.Bundle;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.GridView;
import android.widget.TextView;
import android.widget.Toast;
import android.view.View;
import android.widget.AdapterView.OnItemClickListener;

public class MainActivity extends Activity {

    GridView grid;

    static final String[] letters = new String[] { 
            "A", "B", "C", "D", "E",
            "F", "G", "H", "I", "J",
            "K", "L", "M", "N", "O",
            "P", "Q", "R", "S", "T",
            "U", "V", "W", "X", "Y", "Z"};

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

        setContentView(R.layout.main);

        grid = (GridView) findViewById(R.id.gridView);

        ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, letters);

        grid.setAdapter(adapter);

        grid.setOnItemClickListener(new OnItemClickListener() {
            public void onItemClick(AdapterView parent, View v, int position, long id) {
               Toast.makeText(getApplicationContext(),
                ((TextView) v).getText(), Toast.LENGTH_SHORT).show();
            }
        });

    }

}

了解更多信息click here

答案 1 :(得分:1)

您可以使用以下代码....

activity_main.xml中

<LinearLayout
    android:id="@+id/imageLayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:padding="5dp">

        <GridView
             android:id="@+id/gridview1"
             android:background="@color/colorAccent"
             android:layout_width="match_parent"
             android:layout_height="match_parent"/>

</LinearLayout>

MainActivity.java

public class MainActivity extends AppCompatActivity {

    GridView gridView;
    ArrayList<String> arrayList = new ArrayList<>();

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

        gridView = (GridView)findViewById(R.id.gridview1);

        for(int i=0;i<10;i++)
        {
            arrayList.add("Item - "+i);
        }

        ArrayAdapter adapter = new ArrayAdapter(getApplicationContext(),android.R.layout.simple_list_item_1,arrayList);
        gridView.setAdapter(adapter);
    }
}