用的EditText和IMGE但有一个按钮的GridView [英] Gridview with edittext and imge but with one button
本文介绍了用的EditText和IMGE但有一个按钮的GridView的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我需要的ImageView,EDITTEXT和TextView的每个字段网格视图,终于下方的一个按钮我尝试了很多codeS,但主要问题是在GridView中的每个字段的按钮副本了。除非我不提到它在我的code!
这里是$ C $ getView的C:
公共查看getView(INT位置,查看convertView,父母的ViewGroup){
// TODO自动生成方法存根
视图V;
如果(convertView == NULL){
LayoutInflater充气=((活动)上下文).getLayoutInflater();
V = inflater.inflate(R.layout.gridview,父母,假); 电视=(TextView中)v.findViewById(R.id.textView1);
TX =(EditText上)v.findViewById(R.id.editText1);
tv.setText(+ R.drawable.download);
ImageView的IV =(ImageView的)v.findViewById(R.id.imageView1);
iv.setImageResource(mThumbIds [位置]);
}
其他
{
V = convertView;
}
返回伏;
XML文件:
< LinearLayout中的xmlns:机器人=http://schemas.android.com/apk/res/android
机器人:layout_width =match_parent
机器人:layout_height =match_parent
机器人:方向=垂直>
< GridView控件
的xmlns:机器人=http://schemas.android.com/apk/res/android
机器人:ID =@ + ID / GridView控件
机器人:layout_width =FILL_PARENT
机器人:layout_height =WRAP_CONTENT
机器人:columnWidth时=90dp
机器人:比重=中心
机器人:horizontalSpacing =10dp
机器人:为numColumns =auto_fit
机器人:stretchMode =columnWidth时
机器人:verticalSpacing =10dp>< / GridView的>< ImageView的
机器人:ID =@ + ID / imageView1
机器人:layout_width =WRAP_CONTENT
机器人:layout_height =WRAP_CONTENT
机器人:SRC =@绘制/下载/><的TextView
机器人:ID =@ + ID / textView1
机器人:layout_width =WRAP_CONTENT
机器人:layout_height =WRAP_CONTENT
机器人:文字=TextView的/><的EditText
机器人:ID =@ + ID / editText1
机器人:layout_width =match_parent
机器人:layout_height =WRAP_CONTENT
机器人:EMS =10
安卓的inputType =号> < requestFocus的/>
< /&的EditText GT; <按钮
机器人:ID =@ + ID /按钮1
机器人:layout_width =WRAP_CONTENT
机器人:layout_height =WRAP_CONTENT
机器人:文字=按钮/>< / LinearLayout中>
解决方案
终于,我可以解决我的问题。(有ListView控件,但有没有编码相差无几)
< LinearLayout中的xmlns:机器人=http://schemas.android.com/apk/res/android
机器人:layout_width =FILL_PARENT
机器人:layout_height =FILL_PARENT
机器人:方向=垂直> <的TextView
机器人:ID =@ + ID /选择
机器人:layout_width =30dp
机器人:layout_height =30dp/> < ListView控件
机器人:ID =@机器人:ID /列表
机器人:layout_width =FILL_PARENT
机器人:layout_height =512dp
机器人:drawSelectorOnTop =FALSE/> < RelativeLayout的
机器人:layout_width =match_parent
机器人:layout_height =WRAP_CONTENT
机器人:layout_weight =0.79> <按钮
机器人:ID =@ + ID /按钮1
机器人:layout_width =100dp
机器人:layout_height =WRAP_CONTENT
机器人:layout_alignParentLeft =真
机器人:layout_alignParentTop =真
机器人:文字=按钮/> <按钮
机器人:ID =@ + ID /按钮2
机器人:layout_width =100dp
机器人:layout_height =match_parent
机器人:layout_alignParentRight =真
机器人:layout_alignParentTop =真
机器人:文字=按钮/> < / RelativeLayout的> < / LinearLayout中> < XML版本=1.0编码=UTF-8&GT?;<的LinearLayout
的xmlns:机器人=http://schemas.android.com/apk/res/android
机器人:layout_width =FILL_PARENT
机器人:layout_height =WRAP_CONTENT
机器人:方向=横向> < ImageView的
机器人:ID =@ + ID / PIC
机器人:填充=2DIP
机器人:layout_width =100dp
机器人:layout_height =100dp
机器人:SRC =@绘制/下载/><的EditText
机器人:ID =@ + ID / editpizza
机器人:layout_width =FILL_PARENT
机器人:layout_height =WRAP_CONTENT
机器人:layout_weight =1
机器人:EMS =10
机器人:身高=5DP
安卓的inputType =数字
机器人:宽=10dp> < requestFocus的/>
< /&的EditText GT; <的TextView
机器人:ID =@ + /标记
机器人:layout_width =WRAP_CONTENT
机器人:layout_height =WRAP_CONTENT
机器人:TEXTSIZE =40SP/>< / LinearLayout中>
Java的code:
公共类ListView的扩展ListActivity {
/ **当第一次创建活动调用。 * /
私人TextView的选择;
私人的EditText选择;
私有静态最后的String []项目= {مخصوص,مخلوط,یونانی,قارچوگوشت,پپرونی,مرغوقارچ,سبزیجات,دریایی}; @覆盖
公共无效的onCreate(捆绑savedInstanceState){
super.onCreate(savedInstanceState);
的setContentView(R.layout.view); setListAdapter(新IconicAdapter());
选择=(的TextView)findViewById(R.id.selection);
选择=(EditText上)findViewById(R.id.editpizza);
} 公共无效OnListItemClick(ListView的父母,视图V,INT位置,长的id){
selection.setText(项目[位置]); } 私人字符串getModel(INT位置){
收益率(((IconicAdapter)getListAdapter())的getItem(位置)。);
}
// =====================
//新建类从这里开始
// =====================
类IconicAdapter扩展ArrayAdapter<串GT; { 公共IconicAdapter(){
超(ListView.this,R.layout.row,R.id.label,项目);
} 公共查看getView(INT位置,查看convertView,父母的ViewGroup){
查看排= super.getView(位置,convertView,父母);
观点持有者=(视图)row.getTag(); 如果(持有者== NULL){
持有人=新的视图(行);
row.setTag(保持器);
} 如果(getModel(位置).contentEquals(مخصوص)){
holder.icon.setImageResource(R.drawable.download);
}
否则,如果(getModel(位置)。载有(دریایی)){
holder.icon.setImageResource(R.drawable.drink);
}
否则,如果(getModel(位置)。载有(سبزیجات)){
holder.icon.setImageResource(R.drawable.french);
}
否则,如果(getModel(位置)。载有(مرغوقارچ)){
holder.icon.setImageResource(R.drawable.frenchfrise);
}
否则,如果(getModel(位置)。载有(پپرونی)){
holder.icon.setImageResource(R.drawable.sandwich);
}
否则,如果(getModel(位置)。载有(قارچوگوشت)){
holder.icon.setImageResource(R.drawable.ic_launcher);
}
否则,如果(getModel(位置)。载有(یونانی)){
holder.icon.setImageResource(R.drawable.sandwich);
}
否则,如果(getModel(位置)。载有(مخلوط)){
holder.icon.setImageResource(R.drawable.sandwich);
}
否则,如果(getModel(位置)。载有(مخصوص)){
holder.icon.setImageResource(R.drawable.sandwich);
} 返回(行);
}
}
}
公共类视图{
ImageView的图标= NULL; 视图(View基地){
this.icon =(ImageView的)base.findViewById(R.id.pic);
}
}
I need a grid view with imageView, editText and textView in each field, and finally one button below I try many codes, but the main problem is that button copies in each field of gridview too. unless I dont mention it in my code! here is code of getView:
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
View v;
if(convertView==null){
LayoutInflater inflater = ((Activity)context).getLayoutInflater();
v= inflater.inflate(R.layout.gridview,parent, false);
tv = (TextView)v.findViewById(R.id.textView1);
tx = (EditText)v.findViewById(R.id.editText1);
tv.setText(""+R.drawable.download);
ImageView iv = (ImageView)v.findViewById(R.id.imageView1);
iv.setImageResource(mThumbIds[position]);
}
else
{
v = convertView;
}
return v;
xml file:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<GridView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/gridview"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:columnWidth="90dp"
android:gravity="center"
android:horizontalSpacing="10dp"
android:numColumns="auto_fit"
android:stretchMode="columnWidth"
android:verticalSpacing="10dp" >
</GridView>
<ImageView
android:id="@+id/imageView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/download" />
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="textview" />
<EditText
android:id="@+id/editText1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="number" >
<requestFocus />
</EditText>
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button" />
</LinearLayout>
解决方案
finally I could solve my problem .(with listview but there's not much difference between coding)
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/selection"
android:layout_width="30dp"
android:layout_height="30dp" />
<ListView
android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="512dp"
android:drawSelectorOnTop="false" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="0.79" >
<Button
android:id="@+id/button1"
android:layout_width="100dp"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:text="Button" />
<Button
android:id="@+id/button2"
android:layout_width="100dp"
android:layout_height="match_parent"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:text="Button" />
</RelativeLayout>
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android = "http://schemas.android.com/apk/res/android"
android:layout_width = "fill_parent"
android:layout_height = "wrap_content"
android:orientation = "horizontal" >
<ImageView
android:id = "@+id/pic"
android:padding = "2dip"
android:layout_width = "100dp"
android:layout_height = "100dp"
android:src = "@drawable/download" />
<EditText
android:id="@+id/editpizza"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:ems="10"
android:height="5dp"
android:inputType="number"
android:width="10dp" >
<requestFocus />
</EditText>
<TextView
android:id = "@+id/label"
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:textSize = "40sp" />
</LinearLayout>
java code :
public class ListView extends ListActivity {
/** Called when the activity is first created. */
private TextView selection;
private EditText choose;
private static final String[] items = {"مخصوص", "مخلوط", "یونانی", "قارچ و گوشت", "پپرونی", "مرغ و قارچ", "سبزیجات", "دریایی"};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.view);
setListAdapter(new IconicAdapter());
selection = (TextView)findViewById(R.id.selection);
choose=(EditText) findViewById(R.id.editpizza);
}
public void OnListItemClick(ListView parent, View v, int position, long id){
selection.setText(items[position]);
}
private String getModel(int position){
return(((IconicAdapter)getListAdapter()).getItem(position));
}
//=====================
//New Class Starts Here
//=====================
class IconicAdapter extends ArrayAdapter<String> {
public IconicAdapter() {
super(ListView.this, R.layout.row, R.id.label, items);
}
public View getView(int position, View convertView, ViewGroup parent){
View row = super.getView(position, convertView, parent);
view holder = (view)row.getTag();
if(holder == null){
holder = new view(row);
row.setTag(holder);
}
if(getModel(position).contentEquals("مخصوص")){
holder.icon.setImageResource(R.drawable.download);
}
else if (getModel(position).contains("دریایی")){
holder.icon.setImageResource(R.drawable.drink);
}
else if (getModel(position).contains("سبزیجات")){
holder.icon.setImageResource(R.drawable.french);
}
else if (getModel(position).contains("مرغ و قارچ")){
holder.icon.setImageResource(R.drawable.frenchfrise);
}
else if (getModel(position).contains("پپرونی")){
holder.icon.setImageResource(R.drawable.sandwich);
}
else if (getModel(position).contains("قارچ و گوشت")){
holder.icon.setImageResource(R.drawable.ic_launcher);
}
else if (getModel(position).contains("یونانی")){
holder.icon.setImageResource(R.drawable.sandwich);
}
else if (getModel(position).contains("مخلوط")){
holder.icon.setImageResource(R.drawable.sandwich);
}
else if (getModel(position).contains("مخصوص")){
holder.icon.setImageResource(R.drawable.sandwich);
}
return(row);
}
}
}
public class view {
ImageView icon = null;
view(View base){
this.icon = (ImageView)base.findViewById(R.id.pic);
}
}
这篇关于用的EditText和IMGE但有一个按钮的GridView的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文