这是我现在被困住的地方。我被困在动态添加按钮到gridview - 我的gridview星星只有一个按钮 - 当用户单击该按钮时,会弹出一个上下文菜单,要求用户输入信息。使用该信息创建网格视图中的块 - 如图所示
我已粘贴代码。我对如何做到这一点并不清楚。我假设它将膨胀一个新视图并将其添加到父(布局或网格?)视图。我对如何编码它没有太多想法。我从谷歌尝试过很多东西。我想我可以从简单的图像gridview开始,并根据我的需要进行修改,但它不起作用。
请提供一些指示。
create_team_new.xml(gridview所在的布局)
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
android:id="@+id/parentcreateteam"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
android:background="@drawable/background">
<TextView
android:id="@+id/citytextview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/city"
android:layout_alignTop="@+id/teamcity"
android:layout_alignParentLeft="true" />
<AutoCompleteTextView
android:id="@+id/teamname"
android:layout_width="244dp"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/teamcity"
android:layout_alignRight="@+id/gridviewplayer"
android:text="@string/teamname"
android:textSize="18sp" >
<requestFocus />
</AutoCompleteTextView>
<Button
android:id="@+id/createteam"
android:layout_width="140dp"
android:layout_height="wrap_content"
android:text="Create Team"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:background="@drawable/red_button"
style="@+style/button_text" />
<TextView
android:id="@+id/teamnametextview"
android:layout_width="wrap_content"
android:layout_height="22dp"
android:layout_alignBaseline="@+id/teamname"
android:layout_alignBottom="@+id/teamname"
android:layout_alignParentLeft="true"
android:text="@string/teamname" />
<AutoCompleteTextView
android:id="@+id/teamcity"
android:layout_width="244dp"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/cricket"
android:layout_alignRight="@+id/gridviewplayer"
android:layout_below="@+id/teamname"
android:layout_marginTop="22dp"
android:ems="10"
android:text="@string/city"
android:textSize="18sp" >
</AutoCompleteTextView>
<TextView
android:id="@+id/radiotextview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/teamcity"
android:layout_marginTop="15dp"
android:text="Pick a Sport" />
<GridView
android:id="@+id/gridviewplayer"
android:layout_width="match_parent"
android:layout_height="170dp"
android:layout_above="@+id/createteam"
android:layout_below="@+id/pick_sport"
android:layout_centerHorizontal="true"
android:background="@drawable/gv_bkg"
android:padding="5dp"
android:numColumns="4" >
</GridView>
<RadioGroup
android:id="@+id/pick_sport"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignRight="@+id/createteam"
android:layout_below="@+id/radiotextview"
android:orientation="horizontal" >
<RadioButton
android:id="@+id/cricket"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Cricket" />
<RadioButton
android:id="@+id/soccer"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Soccer" />
</RadioGroup>
</RelativeLayout>
gv_createplayer.xml(视图在gridview内膨胀)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<Button android:id="@+id/btn_player"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text= "+"
android:background="@drawable/red_button">
</Button>
</LinearLayout>
PlayerAdapter.java(gridview Adapter)
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.GridView;
import android.widget.ImageView;
public class PlayerAdapter extends BaseAdapter {
private Context mContext;
LayoutInflater inflater;
// Keep all Images in array
public Integer[] mThumbIds = {};
/* R.drawable.gridview_createteam, R.drawable.pic2,
R.drawable.pic3, R.drawable.pic4,
R.drawable.pic5, R.drawable.pic6,
R.drawable.pic7, R.drawable.pic8,
R.drawable.pic9, R.drawable.pic10,
R.drawable.pic11, R.drawable.pic12,
R.drawable.pic13, R.drawable.pic14,
R.drawable.pic15
};
*/
// Constructor
public PlayerAdapter(Context c){
mContext = c;
}
@Override
public int getCount() {
return mThumbIds.length;
}
@Override
public Object getItem(int position) {
return mThumbIds[position];
}
@Override
public long getItemId(int position) {
return 0;
}
@SuppressWarnings("static-access")
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = new View(mContext);
view.inflate(mContext, R.layout.gv_createplayer,null);
return view;
}
}
答案 0 :(得分:0)
1)如何在主视图中创建列表视图,仅使用一半的屏幕。
这是由weight属性完成的。草图的一个粗略示例:顶部包装器(edittexts和按钮)的权重为.45,列表视图的权重为.45,页脚的权重为.1。您可以在周围视图中指定权重和;但默认值应为1。
2)如何以网格方式填充列表视图(一列两列将重复)
好吧,使用GridView(适配器API是相同的)(: