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