0

私は自分のAndroidアプリで次の画面を作成しようとしています:

ここに画像の説明を入力してください

私が最大9つ以上のチームをリストする必要があるかもしれないことを除いて。私はGridViewを見てきましたが、GridViewドキュメントまたはListAdapterドキュメントでそれができることを示すものが見つかりません。これは可能ですか、それとも私は間違った場所を探していますか?

4

2 に答える 2

1

これは可能ですか、それとも私は間違った場所を探していますか?

GridView、、、およびViewで可能です。セルのビューを膨らませることができます(各セルはここにあります)。例えば:BaseAdapterLayoutInflaterView

main.xml

<GridView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/gridView1"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    <!-- add additional properties as needed --!>
</GridView>

player.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/grid_item_team_name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@+id/teamName"
        android:layout_marginTop="10dp"
        android:textSize="20dp" >
       <!-- add or modify the properties as needed --!>
    </TextView>

</LinearLayout>

ImageAdapter.java

    public class ImageAdapter extends BaseAdapter {
        private Context context;
        private final String[] teamValues;

        public LayoutInflater inflater;
        public LinearLayout ll;

        public ImageAdapter(Context context, String[] teamValues) {
            this.context = context;
            this.teamValues = teamValues;
        }

        public View getView(int position, View convertView, ViewGroup parent) {

            inflater = (LayoutInflater) context
                    .getSystemService(Context.LAYOUT_INFLATER_SERVICE);

            View gridView;

            if (convertView == null) {

                gridView = new View(context);

                // get layout from player.xml
                gridView = inflater.inflate(R.layout.player, null);

                // set value into textview
                ll = (LinearLayout)gridView.findViewById(R.id.linear1);
                TextView textView = (TextView) gridView
                        .findViewById(R.id.grid_item_team_name);
                textView.setText(teamValues[position]);

                String team = teamValues[position];
                // add team members here
                //
                //
                //                    

            } else {
                gridView = (View) convertView;
            }

            return gridView;
        }
    }

GridViewActivity.java

public class GridViewActivity extends Activity {

    GridView gridView;
    ImageAdapter mImageAdapter;

    String[] teamName;

    @Override
    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        teamName = getTeamName();
        mImageAdapter = new ImageAdapter(this, teamName);

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

        registerForContextMenu(gridView);
        gridView.setAdapter(mImageAdapter);

    }

    @Override
    public void onCreateContextMenu(ContextMenu iMenu, View iView, ContextMenuInfo iMenuInfo) {
        super.onCreateContextMenu(iMenu, iView, iMenuInfo);

        iMenu.setHeaderTitle("TEAM NAME");
        iMenu.clear();
        for (int i = 0; i < nTotalTeam; i++) {
            iMenu.add(Menu.NONE, i, Menu.NONE, teamName[i]);
        }
    }

    private void getTeamName() {
    //
    // getTeamName and return the array of string
    //
    //
    }
}
于 2013-01-20T05:04:29.990 に答える
0

GridViewは絶対にここにあります。GridViewの各ビューは、任意のビューであるビューです。はい、プログラムで新しいビューを追加できます。異なるセルを同じタイプのビューにする必要はありません。すべてのセルを非常に柔軟にする必要があります。

于 2013-01-20T04:48:12.620 に答える