Android设计支持库现在包括对Snackbar的支持.
我使用以下代码创建一个:
Snackbar.make(findViewById(R.id.root_layout), result, Snackbar.LENGTH_LONG)
.setAction("Dismiss", new View.OnClickListener() {
@Override
public void onClick(View v) {
}
}).show();
Run Code Online (Sandbox Code Playgroud)
小吃店可以通过刷卡解除.但是,我也想使用自己的Action Button(使用setAction函数创建)来解除它.
但是,似乎没有任何可用的功能可以做到这一点.
我今天在一个不同的问题中问过这个问题,但我担心因为它的措辞如何而无法得到任何解决方案.
我有一个json输入,其中包含以下数据:
如您所见,option_value项是一个对象中的Array和另一个对象中的简单字符串.
我怎样才能让Gson正确处理这个问题?我的类将其描述为List对象,因此它适用于其中option_value是数组的前几个项目,但是当它变为字符串时,应用程序崩溃并且我得到json解析异常.
这有解决方法吗?
UPDATE
按要求添加我班级的相关部分:
public class Options
{
String product_option_id;
String option_id;
String name;
String type;
String required;
List<OptionValue> option_value;
// get set stuff here
public class OptionValue
{
String product_option_value_id;
String option_value_id;
String name;
String image;
String price;
String price_prefix;
// get set stuff here
}
}
Run Code Online (Sandbox Code Playgroud) 我一直在我的应用程序中使用滚动视图,但问题是这是我第一次绘制比默认大小屏幕更长的内容.
XML Design屏幕显示固定的3.7英寸(或更大)屏幕.如果我想添加更多对象怎么办?在Eclipse中进行设计时如何向下滚动?
我最近安装了jdk 1.8 u92,之后Android Studio表示api24版本需要它.但是,我现在遇到了这个问题.
我查看了一些其他解决方案并卸载了jdk 1.7,为JDK_HOME,JAVA_HOME和JAVA8_HOME添加了环境变量.问题仍然存在.
每次我尝试构建应用程序时,gradle sync都会失败,Android studio会要求我选择一个有效的JDK目录.然后我转到Project Structure => JDK Location并将其更新到1.8文件夹.尝试再次构建会产生相同的错误,当我检查项目结构时,路径将自动重新设置为旧的JDK 1.7.
这个问题有什么问题吗?
AppBarLayout
。出现问题了。
更新:这是一个新错误。XML视图预览不显示任何内容。普通的“设计视图”显示预览,但是没有可单击的预览。
java.lang.IllegalArgumentException: object is not an instance of declaring class
Run Code Online (Sandbox Code Playgroud)
这是错误:
java.lang.IllegalArgumentException: java.lang.ClassCastException@24bbb842
at sun.reflect.GeneratedMethodAccessor319.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at android.animation.PropertyValuesHolder_Delegate.callMethod(PropertyValuesHolder_Delegate.java:108)
at android.animation.PropertyValuesHolder_Delegate.nCallFloatMethod(PropertyValuesHolder_Delegate.java:143)
at android.animation.PropertyValuesHolder.nCallFloatMethod(PropertyValuesHolder.java)
at android.animation.PropertyValuesHolder.access$400(PropertyValuesHolder.java:38)
at android.animation.PropertyValuesHolder$FloatPropertyValuesHolder.setAnimatedValue(PropertyValuesHolder.java:1387)
at android.animation.ObjectAnimator.animateValue(ObjectAnimator.java:990)
at android.animation.ValueAnimator.setCurrentFraction(ValueAnimator.java:674)
at android.animation.ValueAnimator.setCurrentPlayTime(ValueAnimator.java:637)
at android.animation.ValueAnimator.start(ValueAnimator.java:1069)
at android.animation.ValueAnimator.start(ValueAnimator.java:1088)
at android.animation.ObjectAnimator.start(ObjectAnimator.java:852)
at android.animation.StateListAnimator.start(StateListAnimator.java:188)
at android.animation.StateListAnimator.setState(StateListAnimator.java:181)
at android.view.View.drawableStateChanged(View.java:21105)
at android.view.ViewGroup.drawableStateChanged(ViewGroup.java:7101)
at com.google.android.material.appbar.AppBarLayout.drawableStateChanged(AppBarLayout.java:393)
at android.view.View.refreshDrawableState(View.java:21160)
at android.view.View.dispatchAttachedToWindow(View.java:18379)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3397)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3404)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3404)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3404)
at android.view.AttachInfo_Accessor.setAttachInfo(AttachInfo_Accessor.java:42)
at com.android.layoutlib.bridge.impl.RenderSessionImpl.inflate(RenderSessionImpl.java:335)
at com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:391)
at com.android.tools.idea.layoutlib.LayoutLibrary.createSession(LayoutLibrary.java:195)
at com.android.tools.idea.rendering.RenderTask.createRenderSession(RenderTask.java:540)
at com.android.tools.idea.rendering.RenderTask.lambda$inflate$5(RenderTask.java:666)
at …
Run Code Online (Sandbox Code Playgroud) 我过去一直在为大多数项目使用SugarDB.它很容易使用并且满足了我的大多数要求,但由于该项目已被放弃,因此决定寻找替代方案,而房间似乎是最佳选择.
然而,一些基本的东西在Room中相当混乱.My Object使用Gson填充来自Web服务的数据,例如链接到其他对象.例如,请考虑以下类:
@Entity
public class TestModel
{
@PrimaryKey(autoGenerate = true)
private int id;
private String name;
private String age;
private List<Book> issuedBooks;
}
public class Book
{
private String title;
private int ISBN;
}
Run Code Online (Sandbox Code Playgroud)
现在,如果我的第一个类被注释为实体,那么这会自动将其中引用的类视为实体吗?
如果我保存TestModel的对象,它会将带有它的Books列表保存到数据库中吗?
我有一个自定义类的ArrayList.列表中大约有10个对象,每个对象都有Title,Snippet,LatLng等详细信息.我已经使用我的自定义类函数(如getTitle,getSnippet,getLatLng等)将所有10个成功添加到Map中.
现在,当我单击信息窗口(标记)时,我希望能够以某种方式知道我的自定义类的哪个对象与该标记对应.
例如,如果我点击麦当劳市场,我希望能够知道我的ArrayList中哪个项目属于该标记.
我一直在看MarkerOptions,似乎没有什么可以用来识别相关的自定义对象.
如果问题太混乱,那么让我简单一点:
ArrayList<CustomObj> objects = blah
map.addMarker(new MarkerOptions().position(new LatLng(
Double.parseDouble(result.get(i).getCompanyLatLng()
.split(",")[0]), Double.parseDouble(result
.get(i).getCompanyLatLng().split(",")[1])))
.title(result.get(i).getCompanyName())
.snippet(result.get(i).getCompanyType())
.icon(BitmapDescriptorFactory
.fromResource(R.drawable.pin)));
Run Code Online (Sandbox Code Playgroud)
现在,当点击它时,我继续下一页.下一页需要知道单击了WHICH对象,以便我可以将其他详细信息发送到该页面(例如,需要加载的图像URL等).
如何在标记中添加唯一的整数或任何标识符?
在我的笔记本电脑上,我有AS版本1.3.2.当1.4.0被释放到稳定通道时,我得到了通常的Update和Restart选项.
但是,在我的桌面上,我有AS版本1.3.0.现在它拒绝在这里给我更新选项,而我只能选择下载独立版本并基本上进行新安装.
这有什么解决方法吗?我想将当前的1.3.0安装更新为1.4.0.
这个API似乎相当新,因此这里没有太多关于它的问题,也没有很多教程.
我按照谷歌的教程,在我的应用程序中使用了Autocomplete Android api.我现在正尝试使用AutocompleteFilter将结果限制在某个区域或某些类型的地方.
对于像我这样的初学者来说,似乎没有什么文档可以解释做什么.
AutocompleteFilter需要Collection对象.如何将以下值更改为整数?
这必须是有史以来最荒谬的事情.
我有一个带有重复自定义项目的RecyclerView.在这些项目中,有一些文本字段,按钮和一个MapView.
问题是,当列表加载时,MapView仅显示Google徽标,而不显示其他图块或细节(或标记).但是,当我在地图上点击一次时,它会显示我添加的标记.在下一次点击时,它会加载像素化地图.在另一个点击,它加载更好的质量地图.进一步点击后,它会添加附近位置的文字标签.LatLngBounds也无法正常工作,但这是次要问题.
为什么会这样?
我的代码如下:
JobAdapter.java
public class JobAdapter extends RecyclerView.Adapter<JobAdapter.ViewHolder>
{
private Context context;
private static List<Job> jobList;
private HashSet<MapView> mapViews = new HashSet<>();
private GoogleMap googleMap;
public JobAdapter(Context con, List<Job> jobs)
{
context = con;
jobList = jobs;
}
@Override
public int getItemCount()
{
return jobList.size();
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType)
{
Context context = parent.getContext();
LayoutInflater inflater = LayoutInflater.from(context);
View view = inflater.inflate(R.layout.listitem_booking, parent, false);
ViewHolder viewHolder = new ViewHolder(view);
mapViews.add(viewHolder.mapView);
return …
Run Code Online (Sandbox Code Playgroud) android ×10
android-room ×1
autocomplete ×1
gson ×1
java ×1
java-8 ×1
json ×1
scrollview ×1
xml ×1