Spinners
、GridViews
とListViews
は、AndroidのAdapterViews
のサブクラスです。つまり、子要素がなく、BaseAdapter
クラスを拡張するカスタムアダプターを使用してプログラムで動的に作成されます。
必要に何をすべきか、最初の空のアクティビティを作成し、GridActivity
という名前を付けます。 activity_grid.xmlレイアウトファイルを空のGridView
に編集します。 例 -
<?xml version="1.0" encoding="utf-8"?>
<GridView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.user.gridbuttonview.GridActivity"
android:columnWidth="90dp"
android:id="@+id/activity_grid"
android:gravity="center"
android:horizontalSpacing="10dp"
android:numColumns="auto_fit"
android:stretchMode="columnWidth"
android:verticalSpacing="10dp" />
その後ButtonAdapter
などという名前のプロジェクトに新しいクラスを作成するには、次の -
マインドをボタンの合計数は、デフォルトで20ある変数total_btns
に設定することができます。
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.Toast;
public class ButtonAdapter extends BaseAdapter
{
private Context mContext;
private int btn_id;
private int total_btns = 20;
public ButtonAdapter(Context context) {
this.mContext = context;
}
@Override
public int getCount() {
return total_btns;
}
@Override
public Object getItem(int i) {
return null;
}
@Override
public long getItemId(int i) {
return 0;
}
@Override
public View getView(final int i, View view, ViewGroup viewGroup)
{
Button btn;
if (view == null) {
btn = new Button(mContext);
btn.setText("Button " + (++btn_id));
} else {
btn = (Button) view;
}
btn.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
Toast.makeText(v.getContext(), "Button #" + (i + 1), Toast.LENGTH_SHORT).show();
}
});
return btn;
}
}
最後に、あなたのGridActivity
クラスの作成時にGridViewコントロールを設定するonCreate
方法を変更します。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_grid);
GridView gridview = (GridView) findViewById(R.id.activity_grid);
gridview.setAdapter(new ButtonAdapter(this));
}
ボタンを使用して、必要なグリッドビューを作成します。そして、あなたは、グリッド・アクティビティをトリガーするには、次の出力を得れば -
アダプタクラスでクリックリスナーが各クリックを処理するために編集することができます。それが役に立てば幸い!