【问题标题】:i need to display ArrayList<String> in GridView using ArrayAdapter我需要使用 ArrayAdapter 在 GridView 中显示 ArrayList<String>
【发布时间】:2017-03-15 00:10:48
【问题描述】:

我需要使用 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);

【问题讨论】:

  • 输出显示为列表而不是网格
  • 您应该将其包含在您的问题正文中。
  • 为什么不使用列表视图?
  • 你检查属性android:numColumns,columnWidth了吗?

标签: java android gridview arraylist android-arrayadapter


【解决方案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);
    }
}

【讨论】:

    【解决方案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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-25
      • 1970-01-01
      • 2014-09-08
      • 1970-01-01
      • 1970-01-01
      • 2014-05-27
      相关资源
      最近更新 更多