Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/199.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 使用ArrayList适配器,如何创建显示彩色圆圈的自定义gridview布局?_Android_Listview_Gridview_Arraylist_Android Arrayadapter - Fatal编程技术网

Android 使用ArrayList适配器,如何创建显示彩色圆圈的自定义gridview布局?

Android 使用ArrayList适配器,如何创建显示彩色圆圈的自定义gridview布局?,android,listview,gridview,arraylist,android-arrayadapter,Android,Listview,Gridview,Arraylist,Android Arrayadapter,我有一个数组列表,每当有人按下一个按钮,一个字符串就会添加到数组列表中。我想创建一个自定义的gridview布局,它显示一个圆形,该圆形根据文本框中输入的单词而着色?谁能告诉我怎么做 另外,我知道我必须创建一个扩展arrayasapter的类,但没有自动生成的内容——但我看到在线教程显示自动生成的注释。这让人困惑,那么有没有人有我可以编辑以自定义的数组适配器的基本代码?谢谢 public class MainActivity extends Activity { ArrayList<Str

我有一个数组列表,每当有人按下一个按钮,一个字符串就会添加到数组列表中。我想创建一个自定义的gridview布局,它显示一个圆形,该圆形根据文本框中输入的单词而着色?谁能告诉我怎么做

另外,我知道我必须创建一个扩展arrayasapter的类,但没有自动生成的内容——但我看到在线教程显示自动生成的注释。这让人困惑,那么有没有人有我可以编辑以自定义的数组适配器的基本代码?谢谢

public class MainActivity extends Activity {
ArrayList<String> rowItems;
private GridView gridView;
private Button button;
private EditText editText;
private CustomViewAdapter adapter;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    gridView = (GridView) findViewById(R.id.gridView1);
    button = (Button) findViewById(R.id.button1);
    editText = (EditText) findViewById(R.id.editText1);
    rowItems = new ArrayList<String>();
    adapter = new CustomViewAdapter(MainActivity.this,
            R.layout.activity_ma, rowItems);
    gridView.setAdapter(adapter);
    button.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            rowItems.add(editText.getText().toString());
            adapter.notifyDataSetChanged();
        }
    });

}

public class CustomViewAdapter extends ArrayAdapter<String> {

    Context context;

    public CustomViewAdapter(Context context, int resourceId,
            ArrayList<String> items) {
        super(context, resourceId, items);
        this.context = context;
    }

    /* private view holder class */
    private class ViewHolder {
        TextView txtDesc;
    }

    public View getView(int position, View convertView, ViewGroup parent) {
        ViewHolder holder = null;
        String rowItem = getItem(position);

        LayoutInflater mInflater = (LayoutInflater) context
                .getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
        if (convertView == null) {
            convertView = mInflater.inflate(R.layout.activity_ma, null);
            holder = new ViewHolder();
            holder.txtDesc = (TextView) convertView.findViewById(R.id.text);
            convertView.setTag(holder);
        } else
            holder = (ViewHolder) convertView.getTag();

        holder.txtDesc.setText(rowItem);
        if (position % 2 == 1) {
            holder.txtDesc.setBackgroundResource(R.drawable.circleone);
        } else {
            holder.txtDesc.setBackgroundResource(R.drawable.circletwo);
        }
        return convertView;
    }
}

}
这是我的活动和阵列适配器

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.aaa.MainActivity" >

<GridView
    android:id="@+id/gridView1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_above="@+id/button1"
    android:layout_centerHorizontal="true"
    android:numColumns="3" >

</GridView>

<Button
    android:id="@+id/button1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_alignRight="@+id/gridView1"
    android:layout_marginBottom="16dp"
    android:text="Button" />

<EditText
    android:id="@+id/editText1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBottom="@+id/button1"
    android:layout_alignLeft="@+id/gridView1"
    android:ems="10" >

    <requestFocus />
</EditText>
这是activity_main.xml的布局

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.aaa.MainActiv" >

<TextView
    android:id="@+id/text"
    android:layout_width="80dp"
    android:layout_height="80dp"
    android:gravity="center"
    android:text="@string/hello_world" />
这将是您的活动_ma.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval">
    <solid android:color="@android:color/darker_gray"/>

</shape>
这将是textview后台circleone.xml

<?xml version="1.0" encoding="utf-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval">
        <solid android:color="@android:color/tertiary_text_light"/>

    </shape>
这将是textview背景circletwo.xml。试试这个