Java 如何根据用户分配GridView中的项目数';s的选择
我正在安卓工作室做一个项目 我有一个gridview,希望根据用户在AlertDialog中输入的内容分配其中的项目数 我尝试在ImageAdapter中创建一个方法,该方法包含一个for循环,根据用户选择的数字,用图像填充数组mThumbIds,但没有成功 我该怎么做 以下是ImageAdapter:Java 如何根据用户分配GridView中的项目数';s的选择,java,android,android-gridview,Java,Android,Android Gridview,我正在安卓工作室做一个项目 我有一个gridview,希望根据用户在AlertDialog中输入的内容分配其中的项目数 我尝试在ImageAdapter中创建一个方法,该方法包含一个for循环,根据用户选择的数字,用图像填充数组mThumbIds,但没有成功 我该怎么做 以下是ImageAdapter: public class ImageAdapter extends BaseAdapter { private Context mContext; // Keep all Im
public class ImageAdapter extends BaseAdapter {
private Context mContext;
// Keep all Images in array
public Integer[] mThumbIds = {
R.drawable.pic_1, R.drawable.pic_1,
R.drawable.pic_1,R.drawable.pic_1,
R.drawable.pic_1, R.drawable.pic_1,
};
// Constructor
public ImageAdapter(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;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ImageView imageView;
if (convertView == null) {
//Calculation of ImageView Size - density independent.
//maybe you should do this calculation not exactly in this method but put it somewhere else.
Resources r = Resources.getSystem();
float px = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 60, r.getDisplayMetrics());
imageView = new ImageView(mContext);
imageView.setLayoutParams(new GridView.LayoutParams((int)px, (int)px));
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
//imageView.setPadding(8, 8, 8, 8);
} else {
imageView = (ImageView) convertView;
}
imageView.setImageResource(mThumbIds[position]);
return imageView;
}
}
这是主要的活动:
public class MainActivity extends Activity {
EditText input;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.grid_layout);
GridView gridView = (GridView) findViewById(R.id.grid_view);
// Instance of ImageAdapter Class
gridView.setAdapter(new ImageAdapter(this));
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("How many tables do you have ?");
input = new EditText(this);
builder.setView(input);
builder.setPositiveButton("Submit", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
String txt = input.getText().toString();
Toast.makeText(getApplicationContext(),txt, Toast.LENGTH_LONG).show();
}
});
AlertDialog ad = builder.create();
ad.show();
}
}
在适配器中添加以下内容:
private int count;
public void setCount(int count){
this.count = count;
notifyDataSetChanged();
}
您的getCount()方法将是
@Override
public int getCount() {
if(count == 0) return mThumbIds.length;
else return count;
}
在按钮中,单击调用以下命令:
private int count;
public void setCount(int count){
this.count = count;
notifyDataSetChanged();
}
imageAdapter.setCount(计数);
将edittext输入(比如X)传递给ImageAdapter,并在getCount()中返回X