我在控制台中看到一个看起来像是错误的信息日志.它是从"艺术"打印出来的,通常与记忆有关,但我需要帮助理解它的含义.有问题的类是我的MapFragment类.MapFragment是我创建的一个自定义类,它扩展了SupportMapFragment,以便我可以覆盖触摸事件.此类是否导致此问题,我该如何解决?
这是我的MapFragment类
public class MapFragment extends SupportMapFragment {
private TouchableWrapper mTouchView;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View originalContentView = super.onCreateView(inflater, container, savedInstanceState);
mTouchView = new TouchableWrapper(getActivity());
mTouchView.addView(originalContentView);
return mTouchView;
}
@Override
public View getView() {
return mTouchView;
}
/**
* MapOnTouchListener callback
*
* @param listener
*/
public void setMapTouchListener(TouchableWrapper.MapOnTouchListener listener) {
mTouchView.setMapOnTouchListener(listener);
}
Run Code Online (Sandbox Code Playgroud)
我收到的错误是,
Rejecting re-init on previously-failed class java.lang.Class<nt>: java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/android/chimera/Fragment;
at java.lang.Class dalvik.system.DexFile.defineClassNative(java.lang.String, java.lang.ClassLoader, java.lang.Object, dalvik.system.DexFile) (DexFile.java:-2)
at java.lang.Class …Run Code Online (Sandbox Code Playgroud) 我正在创建一个可以通过谷歌下载的启动器(自助服务终端)应用程序.首次安装此应用程序时,用户可以选择哪个启动器(我的或库存)将是默认设置.如果用户没有将我的应用程序设置为默认启动器,我试图手动启动它.当对话框出现时,我希望用户强制选择ALWAYS而不是JUST ONCE,否则对话框将继续定期显示友好消息.这是我到目前为止所尝试的.
我创建了一个方法来检查我的应用程序是否是默认的
/**
* method checks to see if app is currently set as default launcher
* @return boolean true means currently set as default, otherwise false
*/
private boolean isMyAppLauncherDefault() {
final IntentFilter filter = new IntentFilter(Intent.ACTION_MAIN);
filter.addCategory(Intent.CATEGORY_HOME);
List<IntentFilter> filters = new ArrayList<IntentFilter>();
filters.add(filter);
final String myPackageName = getPackageName();
List<ComponentName> activities = new ArrayList<ComponentName>();
final PackageManager packageManager = (PackageManager) getPackageManager();
packageManager.getPreferredActivities(filters, activities, null);
for (ComponentName activity : activities) {
if (myPackageName.equals(activity.getPackageName())) {
return true;
}
}
return false; …Run Code Online (Sandbox Code Playgroud) 我想将我的ViewPager设置为循环滚动.我希望第一页能够滚动到第2页和最后一页.我希望我的最后一页滚动到[最后一页-1]和第一页.我已经尝试了,虽然我不确定何时调用我创建的方法.在ViewPager中似乎没有一种方法可以处理这种事情,所以我创建了以下内容.
public ViewPagerAdapter(final ViewPager pager, int... pageIDs) {
super();
int actualNoOfIDs = pageIDs.length;
count = actualNoOfIDs + 2;
Log.d(TAG, "actualNoOfIDs: " + actualNoOfIDs +
"count: " + count);
pageIDsArray = new int[count];
for (int i = 0; i < actualNoOfIDs; i++) {
pageIDsArray[ i + 1] = pageIDs[i];
}
pageIDsArray[0] = pageIDs[actualNoOfIDs - 1];
pageIDsArray[count - 1] = pageIDs[0];
Log.d(TAG, "actualNoOfIDs#2: " + actualNoOfIDs +
"count#2: " + count);
pager.setOnPageChangeListener(new OnPageChangeListener() {
@Override
public void onPageSelected(int position) {
int pageCount …Run Code Online (Sandbox Code Playgroud) 我目前有一个回收站视图,其数据每5秒更新一次.要更新列表中的数据,我正在使用
notifyItemChanged(position);
notifyItemRangeChanged(position, mList.size());
Run Code Online (Sandbox Code Playgroud)
每次我调用notifyItemChanged()时,我的recycler视图上的项都会正确更新,但是它会闪烁,因为这会导致再次调用onBindViewHolder.因此,每次都是新鲜的负载.如果可能的话,我怎样才能防止这种情况发生?
我正在尝试创建和改进现有的SlidingDrawers项目,这些项目可以适用于屏幕的所有四个边{LEFT,RIGHT,TOP,BOTTOM}.有一些库,但它们都有局限性,复杂性和错误.其中一个比较常见的是umano的AndroidSlidingUpPanel,但是,我不喜欢这个库,因为你只需要包含两个子布局,并且还需要注意主要内容的具体安排.其他库类似,或更复杂,或有bug.
我接近完成我的SlidingDrawers版本,我专注于BOTTOM引力.我需要一些帮助.单击抽屉将打开并关闭它.您也可以用手指滑动抽屉.但是,如果你扔掉抽屉,整个视图将会移动到比它应该更低或更低的位置.
我该如何解决这个问题?据我所知,我的数学是正确的.我传给动画师的翻译价值应该是正确的.以下是我完成的工作.请查看此项目https://github.com/drxeno02/CustomDrawerLayout.git.先感谢您.
对于那些想要查看有问题的代码看起来的片段的人来说,这就是我目前正在做的手势.
@Override
public boolean onInterceptTouchEvent(MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
mActivePointerId = MotionEventCompat.getPointerId(event, 0);
switch (mStickTo) {
case GRAVITY_BOTTOM:
case GRAVITY_TOP:
mInitialCoordinate = event.getY();
break;
case GRAVITY_LEFT:
case GRAVITY_RIGHT:
mInitialCoordinate = event.getX();
break;
}
break;
case MotionEvent.ACTION_MOVE:
float coordinate = 0;
switch (mStickTo) {
case GRAVITY_BOTTOM:
case GRAVITY_TOP:
coordinate = event.getY();
break;
case GRAVITY_LEFT:
case GRAVITY_RIGHT:
coordinate = event.getX();
break;
}
final int diff = (int) Math.abs(coordinate - mInitialCoordinate);
// confirm that difference …Run Code Online (Sandbox Code Playgroud) 通常在处理 json 和响应时,您希望在 java 中将 String 编码为 UTF-8。
String response = new String(response.data, UTF); // java code
Run Code Online (Sandbox Code Playgroud)
对于 Kotlin,这是如何做到的?我转换了我的 Java 类,结果是
String response = String(response.data, UTF) // kotlin code
Run Code Online (Sandbox Code Playgroud)
但这会导致错误,因为我相信 Kotlin String() 方法与我在 Java 中所做的不同。它像使用 toString() 一样简单吗?
String response = response.data.toString() // kotlin code
Run Code Online (Sandbox Code Playgroud)
系统如何知道使用 UTF-8,或者这只是默认值?这只是假设,但是如果我想对 String 对象做一些事情并因此使用 UTF-16 呢?如何更改编码?
视图绑定随 v3.6 一起发布。
文档:https : //developer.android.com/topic/libraries/view-binding
我的问题是,有谁知道如何使用包含布局的视图绑定?
包含另一个布局的给定布局
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<include
android:id="@+id/my_header"
layout="@layout/item_header"
android:layout_width="match_parent"
android:layout_height="100dp" />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
我正在尝试引用 item_header 布局内的项目。
binder.my_header (<-- this just returns back the view)
binder.root (<-- this just returns back the root view)
Run Code Online (Sandbox Code Playgroud)
即使我向 item_header 的根添加一个 id,例如 id="@+id/parent_id" 并尝试引用它,我也会收到空指针异常
binder.parentId (<-- I have access to views inside of the item_header, however, I receive exceptions. Says that "parentId" cannot be found)
Run Code Online (Sandbox Code Playgroud)
如何参考布局,item_header?
我遵循了这个教程:http://looksok.wordpress.com/2013/08/24/android-triangle-arrow-defined-as-an-xml-shape/
本教程用于创建自定义箭头作为递增/递减按钮,而无需使用图像.箭头的形状很好但是向上箭头的位置使其底部位于按钮视图的底部,而向下箭头的底部位于按钮视图的顶部.换句话说,箭头没有正确对齐.

我想知道,按钮视图是否有某种y轴偏移可以用来更好地定位箭头?我的代码是:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<Button
android:id="@+id/arrow_up"
android:layout_width="75dp"
android:layout_height="75dp"
android:background="@drawable/custom_arrow" />
<Button
android:id="@+id/arrow_down"
android:layout_width="75dp"
android:layout_height="75dp"
android:rotation="180"
android:layout_toRightOf="@id/arrow_up"
android:background="@drawable/custom_arrow" />
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
custon_arrow.xml是:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item>
<!-- android:pivotX="-40%" -->
<rotate
android:fromDegrees="45"
android:toDegrees="45"
android:pivotX="-20%"
android:pivotY="88%" >
<shape
android:shape="rectangle" >
<stroke android:color="@color/transparent" android:width="5dp"/>
<solid
android:color="@color/grey_shade" />
</shape>
</rotate>
</item>
</layer-list>
Run Code Online (Sandbox Code Playgroud) 关于如何进行渐变多段线的问题已被多次询问,但是,我想知道这是否内置于Android中.在接下来的帖子中,这个问题已经蓄势待发,有人回答说截至2015年5月,Android仍然没有渐变折线:
我已经梳理了所有可以找到的文档,并且没有看到有关渐变折线函数的任何信息.我错过了吗?因为iOS已经有三年的这种能力了.
https://maps-apis.googleblog.com/2014/02/gradient-polylines-and-structured.html
我无法想象Google会优先考虑iOS而不是Android.或者是他们?这是我检查过的文档:
https://developers.google.com/maps/documentation/android-api/polygon-tutorial
https://developers.google.com/android/reference/com/google/android/gms/maps/model/PolylineOptions
https://developers.google.com/maps/documentation/android-api/groundoverlay
如果有人能指出我正确的方向,那会有所帮助.或者至少确认在梯度折线方面已经忽略了Android.
我有一个关于如何使用相机意图(或相机API)拍摄图像的问题,然后将图像带入imageView,以便在我的应用程序中显示.这就是我到目前为止所拥有的.
我设置了一个按钮
Button btnPicture = (Button) findViewById(R.id.btn_picture);
btnPicture.setOnClickListener(this);
Run Code Online (Sandbox Code Playgroud)
我设置了一个Camera方法
private void Camera() {
Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intent, TAKE_PICTURE_CODE);
intent.setAction(Intent.ACTION_GET_CONTENT);
intent.addCategory(Intent.CATEGORY_OPENABLE);
startActivityForResult(intent, REQUEST_CODE);
}
Run Code Online (Sandbox Code Playgroud)
这就是我迷失的地方.我正在尝试处理我拍摄的图像.
private void processImage(Intent intent) {
setContentView(R.layout.imagelayout);
ImageView imageView = (ImageView)findViewById(R.id.image_view);
cameraBitmap = (Bitmap)intent.getExtras().get("data");
imageView.setImageBitmap(cameraBitmap);
}
Run Code Online (Sandbox Code Playgroud)
我的目的是显示你在image_view中拍摄的图像.我没有收到错误,没有任何反应.当我拍照时,我被要求拍摄另一张照片,或者在我使用设备后退按钮后,应用程序强制关闭.似乎我完全退出了我的应用程序,返回是一个大问题.有什么建议?我错过了什么?
是的,这是我的onActivityResult
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(TAKE_PICTURE_CODE == requestCode) {
Bundle extras = data.getExtras();
if (extras.containsKey("data")) {
Bitmap bmp = (Bitmap) extras.get("data");
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bmp.compress(Bitmap.CompressFormat.PNG, 100, baos);
byte[] …Run Code Online (Sandbox Code Playgroud)