如果搜索视图是打开的,我有一些设置布尔值的代码.
MenuItemCompat.setOnActionExpandListener(action_search, new MenuItemCompat.OnActionExpandListener() {
@Override
public boolean onMenuItemActionExpand(MenuItem item){
isSearch = true;
return true;
}
@Override
public boolean onMenuItemActionCollapse(MenuItem item){
isSearch = false;
return true;
}
});
Run Code Online (Sandbox Code Playgroud)
有用.我很满意它的反应方式.但是,它显示为已弃用,setOnActionExpandListener将与警告一起划掉
不推荐使用android.support.v4.view.MenuItemCompat.setOnActionExpandListener
建议?
我相信已经成功安装了LeakCanary.
我将调试,发布和测试依赖项添加到build.gradle文件中.
我将必要的文件添加到我的Application Class中.必要时进口.确认应用程序类已正确添加到清单中.我的应用程序类是否需要显式调用?
<application
android:name=".MyApplication"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
Run Code Online (Sandbox Code Playgroud)
我在模拟器上运行我的应用程序,看不到任何不同.我监控Android监视器并没有看到任何区别.我怎么知道它是否全部有效?我已经分享了我的Application类.
import android.app.Application;
import android.content.res.Configuration;
import com.squareup.leakcanary.LeakCanary;
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
if (LeakCanary.isInAnalyzerProcess(this)) {
return;
}
LeakCanary.install(this);
}
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
}
@Override
public void onLowMemory() {
super.onLowMemory();
}
Run Code Online (Sandbox Code Playgroud)
}
我有以下回收器视图代码,它允许用户向右滑动(从视图中删除卡并从 SQLite db 中删除数据)并允许用户移动标签以重新排列。有用。我很高兴。
ItemTouchHelper.SimpleCallback simpleItemTouchCallback = new ItemTouchHelper.SimpleCallback(ItemTouchHelper.UP | ItemTouchHelper.DOWN, ItemTouchHelper.RIGHT) {
@Override
public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, RecyclerView.ViewHolder target) {
//awesome code when user grabs recycler card to reorder
}
@Override
public void clearView(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder) {
super.clearView(recyclerView, viewHolder);
//awesome code to run when user drops card and completes reorder
}
@Override
public void onSwiped(RecyclerView.ViewHolder viewHolder, int direction) {
//awesome code when swiping right to remove recycler card and delete SQLite data
}
};
ItemTouchHelper itemTouchHelper …Run Code Online (Sandbox Code Playgroud) Google Play控制台预发布报告指出我的应用在Pixel Android 8.0上运行时出现崩溃(其他人没有问题).在观看重播时,我发现没有问题,也没有看到应用程序崩溃.
这是提供的信息.
问题:com.xxxxxxxxx的本机崩溃
构建指纹:'google/sailfish/sailfish:8.0.0/OPR3.170623.008/4294783:user/release-keys'修订版:'0'ABI:'arm64'pid:10010,tid:10046,name:ControllerMesse >>> com.xxxxxxx <<<信号6(SIGABRT),代码-6(SI_TKILL),故障地址--------中止消息:"不能让一个肮脏的矩阵!X0 0000000000000000 X1 000000000000273e X2 0000000000000006 X3 0000000000000008 X4 feff71647164636d X5 feff71647164636d 5233 feff71647164636d X7 7f7f7f7f7f7f7f7f X8 0000000000000083 X9 09ee441dd405312c X10 0000000000000000 X11 0000000000000001 X12 FFFFFFFFFFFFFFFF X13 FFFFFFFFFFFFFFFF X14 ffffffffff000000 X15 FFFFFFFFFFFFFFFF X16 0000007e7b1662f8 X17 0000007e7b1085d0 X18 00000000ebad6082 X19 000000000000271a X20 000000000000273e X21 000000007099a7f0 X22 0000000012c6d508 X23 0000000012fffd20 X24 00000000135a0278 x25 0000000000000000 x26 0000000000000000 x27 0000000012ffffb8 x28 00000000706b05b0 x29 0000007e5f2ee1f0 x30 0000007e7b0bc994 sp 0000007e5f2ee1b0 pc 0000007e7b1085d8 pstate 0000000060000000
任何人都可以指出我正确的方向.
Variable is already assigned to this value
执行以下操作时,我收到 lint 警告
String[] sa =getStringArray();
sa = modifyArrayandMakeAwesomer(sa); //get the warning here
Run Code Online (Sandbox Code Playgroud)
对我来说似乎是一个新的警告。也许我的 lint 设置已更改。该代码按预期工作,没有任何错误。这是不好的做法吗?我应该声明第二个字符串数组吗?
我一直在使用 Android 的 overridePendingTransition 方法来为我的活动页面过渡设置动画,并取得了巨大的成功。示例显示
startActivity(new Intent(GetTagActivity.this, MainActivity.class));
overridePendingTransition(R.anim.fade_in, R.anim.fade_out);
Run Code Online (Sandbox Code Playgroud)
我有一种情况需要“刷新”页面并希望淡入淡出过渡。在不深入细节的情况下,我无法使用该StartActivity(...)方法来调用刷新(这将允许动画调用)。
使用recreate()作品完美地“刷新”页面,但是我无法添加过渡动画。这没有奏效。
recreate();
overridePendingTransition(R.anim.fade_in, R.anim.fade_out);
Run Code Online (Sandbox Code Playgroud)
也不是这个
recreate().overridePendingTransition(R.anim.fade_in, R.anim.fade_out);
Run Code Online (Sandbox Code Playgroud)
淡入淡出动画(或任何活动过渡)可以与 recreate() 一起使用吗?
我几乎在所有班级都有这种方法.
//listener - info
private void clickInfoListener(final ImageView iv, final int title, final int text){
iv.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
materialHelper.showInfoDialog(MainActivity.this, iv, title, text);
}
});
}
Run Code Online (Sandbox Code Playgroud)
在辅助类中访问此静态方法
public static void showInfoDialog(Context context, final ImageView iv, final int title, final int text){
iv.setImageResource(R.drawable.ic_info_touched);
//
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setCancelable(true);
builder.setTitle(title);
builder.setMessage(text);
builder.setPositiveButton(R.string.gotIt, null);
builder.show();
//
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
public void run() {
iv.setImageResource(R.drawable.ic_info_primary);
}
}, 25);
}
Run Code Online (Sandbox Code Playgroud)
我得到了"静态成员被实例引用访问"的lint警告.我不知道怎么不在这里使用"这个".所以我有两个选择.
1)忽略棉绒警告
2)在我的帮助方法中删除"静态". …
所以,我有这个方法让我知道用户是否有活跃的互联网连接.它运作良好.但是,泄漏金丝雀已识别出与connectivityManager相关的内存泄漏.我目前没有在我知道的任何时候在我的代码中的任何地方关闭connectivityManager.
我试图关闭onDestroy中的connectivityManager.要么这不是一个选项,要么我不知道代码.说实话,我只是试着让自动填充告诉我该怎么做.没运气.
public static boolean isNetworkAvailable(Context context) {
ConnectivityManager connectivityManager =(ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetworkInfo =connectivityManager.getActiveNetworkInfo();
return activeNetworkInfo !=null && activeNetworkInfo.isConnected();
}
Run Code Online (Sandbox Code Playgroud) 我搜索了一个答案,找不到任何东西,这可能意味着这是一个基本问题.冒着表达我无知的风险,无论如何我都会问.我正在准备我的应用程序发布,并希望确保泄漏金丝雀不会弹出我的用户.我的泄漏金丝雀相关的依赖关系就是这样.
dependencies {
debugCompile 'com.squareup.leakcanary:leakcanary-android:1.5'
releaseCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.5'
testCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.5'
}
Run Code Online (Sandbox Code Playgroud)
我认为,因为releaseCompile包含no-op它意味着我可以按原样继续我的发布版本而不删除Leak Canary代码.我对吗?
我经历从depricated地方迁移的过程SDK来Places API所描述这里,使用兼容性库。在尝试迁移之前,一切正常。我有
1) 更新了我的依赖项
2) 更改我的导入语句
3) 最小 SDK 已经是 21
我收到两个(看似相关的)错误。 cannot find symbol variable GEO_DATA_API和cannot find symbol variable GeoDataApi
编码
googleApiClient = new GoogleApiClient.Builder(PlacesActivity.this)
.addApi(Places.GEO_DATA_API) //***HERE***
.enableAutoManage(this, GOOGLE_API_CLIENT_ID, this)
.addConnectionCallbacks(this)
.build();
Run Code Online (Sandbox Code Playgroud)
和
private ArrayList<PlaceAutocomplete> getPredictions(CharSequence constraint) {
if (googleApiClient !=null) {
PendingResult<AutocompletePredictionBuffer> results = Places.GeoDataApi.getAutocompletePredictions( // ***AND HERE***
googleApiClient,
constraint.toString(),
latLngBounds,
autocompleteFilter
);
// Wait for predictions, set the timeout.
AutocompletePredictionBuffer autocompletePredictions = results.await(60, TimeUnit.SECONDS);
final Status status = autocompletePredictions.getStatus();
if (!status.isSuccess()) {
//auto …Run Code Online (Sandbox Code Playgroud) android google-places-api google-places google-places-autocomplete
android ×10
leakcanary ×3
memory-leaks ×3
animation ×1
connectivity ×1
crash ×1
deprecated ×1
dialog ×1
java ×1
lint ×1
prelaunch ×1
recreate ×1
release ×1
searchview ×1
static ×1
swipe ×1
warnings ×1