java - 可以在 GridView 单元格中添加 View 吗?

标签 java android

我正在尝试在我的 Android 应用程序中创建以下屏幕:

enter image description here

除非我可能需要列出最多 9 个或更多团队。我一直在查看 GridView,但在 GridView docs 中找不到任何内容或ListAdapter docs以表明我可以做到这一点。这是可能的还是我找错地方了?

最佳答案

Is this possible or am I looking in the wrong place?

可以使用GridViewViewBaseAdapterLayoutInflater。您可以扩充单元格的 View (此处每个单元格都是View)。例如:

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
    //
    //
    }
}

关于java - 可以在 GridView 单元格中添加 View 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14421728/

相关文章:

java - 将多个任意注释合并为一个

android.widget.LinearLayout 无法转换为 android.widget.TextView

android - PWA 是否可以转换为 Native App?

Java 重用扫描器

java - 在 Eclipse IDE 中没有创建 Maven 项目的选项

java - 如何更新 google drive api v3 java 中已有的文件

java - 创建 JSON 格式输出

java - 从自定义 ListView 中的 CheckBox 获取值

android - 在哪里下载 Eclipse?

android - GAPlugin 不会将数据推送到 Google 分析