小编Add*_*dev的帖子

更新列值,替换部分字符串

我在MySQL数据库中有一个包含以下列的表

[id, url]
Run Code Online (Sandbox Code Playgroud)

网址如下:

 http://domain1.com/images/img1.jpg
Run Code Online (Sandbox Code Playgroud)

我想将所有网址更新到另一个域

 http://domain2.com/otherfolder/img1.jpg
Run Code Online (Sandbox Code Playgroud)

保持文件的名称不变.

我必须运行什么查询?

mysql sql

302
推荐指数
5
解决办法
38万
查看次数

Ems是什么意思?(Android TextView)

Ems是什么意思(与TextView相关)?例如在

android:ems     setEms(int)
Run Code Online (Sandbox Code Playgroud)

使TextView正好是这么多的ems.

android textview

289
推荐指数
6
解决办法
23万
查看次数

Android Json和null值

如何检测json值何时为空?例如:[{"username":null},{"username":"null"}]

第一种情况表示未存在的用户名,第二种情况表示名为"null"的用户.但是,如果您尝试检索它们,则两个值都会导致字符串"null"

JSONObject json = new JSONObject("{\"hello\":null}");
json.put("bye", JSONObject.NULL);
Log.e("LOG", json.toString());
Log.e("LOG", "hello="+json.getString("hello") + " is null? "
                + (json.getString("hello") == null));
Log.e("LOG", "bye="+json.getString("bye") + " is null? "
                + (json.getString("bye") == null));
Run Code Online (Sandbox Code Playgroud)

日志输出是

{"hello":"null","bye":null}
hello=null is null? false
bye=null is null? false
Run Code Online (Sandbox Code Playgroud)

java android json

90
推荐指数
3
解决办法
9万
查看次数

适用于初学者的Android NDK教程/指南.

我从android NDK开始.是否有一些好的地方/电子书来指导我?谢谢

java android android-ndk

79
推荐指数
4
解决办法
8万
查看次数

onActivityResult中的操作和"错误无法在onSaveInstanceState之后执行此操作"

实现用户可以登录的应用程序我有以下情况:如果用户已登录,则执行操作,否则启动结果的登录活动,如果结果是Activity.RESULT_OK,则执行操作.

我的问题是,要执行的操作是显示DialogFragment,但是调用

DialogFragment newFragment = MyDialogFragment.newInstance(mStackLevel);
newFragment.show(ft, "dialog")
Run Code Online (Sandbox Code Playgroud)

在onActivityResult回调中引发异常:

Caused by: java.lang.IllegalStateException:  
Can not perform this action after onSaveInstanceState
Run Code Online (Sandbox Code Playgroud)

那我怎么解决这个问题呢?我正在考虑在那里举起一个标志并在onResume中显示对话框,但我看到这个解决方案有点脏

编辑:添加了更多代码(我按照此示例显示DialogFragment

当用户请求操作时:

... 
if (!user.isLogged()){
 startActivityForResult(new Intent(cnt, Login.class), REQUEST_LOGIN_FOR_COMMENT);
}
Run Code Online (Sandbox Code Playgroud)

在同一个片段中

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == REQUEST_LOGIN_FOR_COMMENT && resultCode == Activity.RESULT_OK) {
        FragmentTransaction ft = getFragmentManager().beginTransaction();
        DialogFragment newFragment = MyDialogFragment.newInstance();
        newFragment.show(ft, "dialog")
    }
}
Run Code Online (Sandbox Code Playgroud)

如果用户登录Login活动调用;

setResult(Activity.RESULT_OK);
finish();
Run Code Online (Sandbox Code Playgroud)

java android android-fragments

46
推荐指数
2
解决办法
2万
查看次数

无法为ApkVariantOutputImpl_Decorated设置只读属性'outputFile'的值

我在gradle脚本中使用以下代码重命名使用AndroidStudio生成的apks:

applicationVariants.all { variant ->
    variant.outputs.each { output ->
        output.outputFile = new File(output.outputFile.parent, defaultConfig.versionCode + "_" + output.outputFile.name)
    }
}
Run Code Online (Sandbox Code Playgroud)

所以它生成的apks名称如下:345-app-release.apk,其中345是versionCode.

但在更新到AndroidStudio 3.0后,它返回以下错误:

无法为com.android.build.gradle.internal.api.ApkVariantOutputImpl类型的ApkVariantOutputImpl_Decorated {apkData = Main {type = MAIN,fullName = debug,filters = []}}设置只读属性'outputFile'的值.

如何使用新的构建工具实现类似的重命名.

android android-gradle-plugin

44
推荐指数
4
解决办法
4万
查看次数

检查对象是否是类的实例(但不是其子类的实例)

对于这个例子:

public class Foo{}

public class Bar extends Foo{}

....

void myMethod(Foo qux){
   if (checkInstance(qux,Foo.class)){
     ....
   }
}
Run Code Online (Sandbox Code Playgroud)

如何检查是否qux是Foo的实例(但不是foo的子类的实例)?那是:

  • checkInstance(qux,让Foo.class)=真
  • checkInstance(qux,Bar.class)=假

instanceof这张支票有什么样的陈述吗?或者我应该使用qux.getClass().equals(Foo.class)

java instanceof

39
推荐指数
3
解决办法
4万
查看次数

更改TextInputLayout轮廓颜色

我正在尝试使用材质样式自定义TextInputLayout.我设法将聚焦状态设置为我想要的颜色:

在此输入图像描述

运用

<com.google.android.material.textfield.TextInputLayout
     style="@style/LoginTextInputLayoutStyle"
     android:theme="@style/LoginTextInputLayoutStyle"
     android:textColorHint="#fff"
     app:boxStrokeColor="#fff"
     .....>
          <EditText ...
Run Code Online (Sandbox Code Playgroud)

风格在哪里:

<style name="LoginTextInputLayoutStyle" parent="Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense">
    <item name="colorAccent">#fff</item>
</style>   
Run Code Online (Sandbox Code Playgroud)

但是当textinput没有聚焦时,我得到了这样的表情:

在此输入图像描述

如何将黑线的颜色也改为白色.谢谢

android android-styles material-design android-textinputlayout

37
推荐指数
6
解决办法
3万
查看次数

在java中尝试/ catch vs null检查

有时我面对我必须写一段这样的代码(通常它有更多的嵌套if和更复杂的结构,但是对于这个例子来说)

public void printIt(Object1 a){
  if (a!=null){
     SubObject b= a.getB();
     if (b!=null){
         SubObject2 c=b.getC();
         if(c!=null){
             c.print();
         }
     }
  }
}
Run Code Online (Sandbox Code Playgroud)

当我不需要知道什么是失败的,如果什么是空的什么都不做,一种方法可能是

public void printIt(Object1 a){
    try{
      a.getB().getC().print();
    }catch (NullPointerException e) {
    }
}
Run Code Online (Sandbox Code Playgroud)

第二种形式如性能或其他类型的问题是否有问题?

谢谢

java

32
推荐指数
4
解决办法
2万
查看次数

ASyncTasks阻止其他人

我有2个ASyncTasks,一个从httpPost检索一个值,另一个更新UI的一些元素(包括listview).问题是,由于两个ASyncTasks共享相同的后台线程,如果网络操作首先启动并且运行缓慢(由于网络连接不良).其他背景线程花费太多时间使应用程序不负责任.

由于两个ASyncTasks都是独立的,因此等待另一个非常愚蠢.这将是更合乎逻辑的asynctasks不同的类使用不同的线程,我错了吗?

阅读ASyncTask文档.谈谈使用 executeOnExecutor(),但是如何在低于11的API级别解决这个问题呢?

这是一个重现"问题"的小例子

        new Task1().execute();
        new Task2().execute();
Run Code Online (Sandbox Code Playgroud)

public class Task1 extends AsyncTask<Void, Void, Void> {

    @Override
    protected Void doInBackground(Void... params) {
        GLog.e("doInBackground start 1");
        SystemClock.sleep(9000);
        GLog.e("doInBackground end 1");
        return null;
    }

    @Override
    protected void onPreExecute() {
        GLog.e("onPreExecute 1");
        super.onPreExecute();
    }

    @Override
    protected void onPostExecute(Void result) {
        GLog.e("onPostExecute 1");
        super.onPostExecute(result);
    }

}

public class Task2 extends AsyncTask<Void, Void, Void> {

    @Override
    protected void onPreExecute() {
        GLog.e("onPreExecute 2");
        super.onPreExecute();
    }

    @Override
    protected Void doInBackground(Void... params) { …
Run Code Online (Sandbox Code Playgroud)

multithreading android thread-safety android-asynctask

28
推荐指数
2
解决办法
7647
查看次数