我们知道使用android网格视图,我们可以执行以下操作并在单击项目时收到通知:
gridview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
Toast.makeText(PopularCapitActivity.this, "" + position, Toast.LENGTH_SHORT).show();
}
});
Run Code Online (Sandbox Code Playgroud)
我们也知道,如果网格中的单元格包含一个可点击的项目,比如一个按钮,则上面的内容不会被触发.
所以目前我有一个网格视图,每个单元都有自己的按钮,所以现在当用户点击该按钮,它会根据按钮位于小区有自己的行动,我的问题是,我怎么能访问单元位置在按钮处理程序?
谢谢
我试图在android中的gridview布局中添加一个可滚动的标题,我尝试过我可以在网上找到的所有东西,但我不能让它工作,这种类型的布局出现在一些流行的应用程序,如Facebook和Instagram但我无法找到任何可以让我了解如何实际操作的示例代码,任何人都知道如何实现这一目标?将gridview添加到scrollview也不起作用,下面是一些照片,说明了我想要实现的目标.
这是在卷轴之前:

这是在滚动之后:

我想创建每周日历视图并在每个网格项目内(每天)可能有几个活动.但是我已经使用网格视图创建了每周日历视图但我想通过动态创建特定日期的活动检查db.和图像一样.下面是我的getView()代码..
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View row = convertView;
if (convertView == null) {
LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
row = inflater.inflate(R.layout.calendar_week_gridcell, parent, false);
}
txtRowTitle = (TextView) row.findViewById(R.id.txtDayTitle);
LinearLayout root = (LinearLayout) row.findViewById(R.id.linear_root);
String dayTitle = list.get(position);
txtRowTitle.setText(dayTitle);
if (position == currentWeekDay - 1)
root.setBackgroundResource(R.drawable.calheader);
if (!activityMap.isEmpty() && activityMap.containsKey(activityDateList.get(position))) {
TextView item = new TextView(mContext);
item.setText(activityMap.get(activityDateList.get(position)));
item.setBackgroundColor(Color.GREEN);
root.addView(item);
}
return row;
}
Run Code Online (Sandbox Code Playgroud)
}
这里我暂时尝试动态添加文本视图,但我想在这里充气我的自定义activity_item布局并将其添加到网格单元格.
我创建了一个带有图标列表的对话框,即drawables.我创建了一个网格视图来显示这些图标.
现在我想获取所选图标并将其设置为我的活动中的图像视图.
那么如何将其转换为drawable,以便我可以在活动的图像视图中设置所选图标?
对话框代码:
private void showAlertDialog() {
GridView gridView = new GridView(this);
gridView.setGravity(Gravity.CENTER);
gridView.setPadding(0,20,0,20);
int[] mThumbIds = {
R.drawable.roundicons05,R.drawable.roundicons08,R.drawable.roundicons02,R.drawable.roundicons03,R.drawable.roundicons04,
R.drawable.roundicons16,R.drawable.roundicons37,R.drawable.roundicons06,R.drawable.roundicons07,R.drawable.roundicons05,
R.drawable.roundicons09,R.drawable.roundicons10,R.drawable.roundicons11,R.drawable.roundicons12,R.drawable.roundicons13,
R.drawable.roundicons14,R.drawable.roundicons15,R.drawable.roundicons16,R.drawable.roundicons17,R.drawable.roundicons18,
R.drawable.roundicons19,R.drawable.roundicons20,R.drawable.roundicons22,
};
gridView.setAdapter(new ImageAdapter(CheckListActivity.this,mThumbIds));
gridView.setNumColumns(4);
gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
// do something here
// icon.setImageDrawable(id);
imageId = position;
Drawable drawable = getResources().getDrawable(imageId);
icon.setImageDrawable(drawable);
}
});
final MaterialDialog dialog = new MaterialDialog.Builder(CheckListActivity.this)
.customView(gridView, false)
.title("Select Icon")
.negativeText("CANCEL")
.canceledOnTouchOutside(true)
.build();
dialog.show();
}
Run Code Online (Sandbox Code Playgroud)
我试过这样的
imageId = position;
Drawable drawable …Run Code Online (Sandbox Code Playgroud) 我的Android Studio版本是2.3.3
在我的Android应用程序gradle构建中,我已经明确地server_url为调试类型和发布类型定义了不同的字符串值:
buildTypes {
debug {
resValue "string", "server_url", "https://myserver.debug.com/"
}
release {
resValue "string", "server_url", "https://myserver.com/"
...
}
}
Run Code Online (Sandbox Code Playgroud)
在我的代码中,我通过以下方式获取字符串值:
String url = context.getString(R.string.server_url);
Run Code Online (Sandbox Code Playgroud)
我将Android手机连接到笔记本电脑.Android studio工具栏如下所示:

我还选择构建变体为"debug":
我点击了
,该应用程序正在我的手机上运行,但是,它使用server_url在发布类型中定义的值.为什么?
(在build/generated/res/resValues/debug/generated.xml&build/generated/res/resValues/release/generated.xml我看到那些价值观,没有问题.)
====更新===
加入defaultPublishConfig 'debug'解决了该问题(感谢@Ulug托普拉克),但我仍然不知道为什么,虽然我已构建变量为"Debug"的Android Studio不会没有它的工作.也许是Android Studio中的一个错误?
android android-gridview android-studio android-gradle-plugin android-studio-2.3
我有一个gridview.我显示来自10个图像阵列的图像.1分钟后我又添加了5张图片.要更新gridview,我使用以下代码.
aImgAdapterL.notifyDataSetChanged();
Run Code Online (Sandbox Code Playgroud)
aImgAdapterL是我的ImgaeAdapter.新图像正在显示.
我的问题是在更新网格视图时,在图像更新期间发生一次闪烁或闪烁.是否有可能隐藏闪烁?
我正在开发一个Android应用程序,它需要显示一个书架,每行最多包含3个图像.我正在使用gridview.但我陷入了一点,我无法改变gridview中整行的背景.谁能告诉我怎么做?
用于gridview的适配器
private class SampleGridAdapter extends BaseAdapter{
private Context context;
private int[] images = {"R.drawable.img1","R.drawable.img2","R.drawable.img3","R.drawable.img4","R.drawable.img5","R.drawable.img6","R.drawable.img7"};
public SampleGridAdapter(Context context) {
super();
this.context = context;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return images.length;
}
@Override
public Object getItem(int arg0) {
// TODO Auto-generated method stub
return null;
}
@Override
public long getItemId(int arg0) {
// TODO Auto-generated method stub
return 0;
}
@Override
public View getView(int arg0, View arg1, ViewGroup arg2) {
// TODO Auto-generated method stub …Run Code Online (Sandbox Code Playgroud) 我编写了一个代码,我在GridView中显示图像,但现在我想在每个图像的底部显示文本.
我想像这样展示我的网格:

但是这样[也想显示Text for Image]:

main.xml中:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<GridView
android:id="@+id/gridview"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:verticalSpacing="0dp"
android:horizontalSpacing="0dp"
android:stretchMode="columnWidth"
android:numColumns="2"
/>
</FrameLayout>
Run Code Online (Sandbox Code Playgroud) 如何设置剩余的空间被平分?
例如,我有一个包含2列的GridView.全宽为700px,列为200px:如何指定xml,左边的空间(300px)被均分为3个?
即100px | 200px(第1列)| 100px | 200px(第2列)| 100px的