小编jwB*_*ide的帖子

我如何子类化AutoValue类?

我正在使用AutoValue扩展来生成我的Parcelable Android类.文档明确指出一个@AutoValue不能扩展另一个:https: //github.com/google/auto/blob/master/value/userguide/howto.md#inherit

另一位开发人员正在帮我解决这个问题,并建议"如果你有共同的字段,你可以将它们放在两个实现都实现的接口中." 我假设这意味着图书馆更喜欢构图而不是继承.

我承认,我有点迷茫.如果有人可以提供一个简单的"子类化"AutoValue类的简单方法的例子,那将是值得赞赏的.这是一个简单的类:

@AutoParcelGson
public abstract class User implements Parcelable {

    public abstract String username();
    public static User create(String username) {
        return builder().username(username).build();
    }

    public static Builder builder() {
        return new AutoParcelGson_User.Builder();
    }

    @AutoParcelGson.Builder
    public interface Builder {
        Builder username(String username);
        User build();
    }
}
Run Code Online (Sandbox Code Playgroud)

我想要另一个名为Customer的@AutoValue类,它有一些额外的字段.此外,@ AutoParcelGson是我正在使用的@AutoValue扩展,但它是相同的行为.

java android auto-value

12
推荐指数
1
解决办法
2308
查看次数

Angular 5 HttpClient:将POST参数作为URL编码字符串发送

Angular 5.0.1

我正在查看Angular HttpClient的文档:https://angular.io/guide/http,但我似乎无法想象如何将POST参数作为URLEncoded字符串而不是JSON字符串发送.例如,我的Java http客户端将默认发送如下:

username=test%40test.com&password=Password1&rolename=Admin
Run Code Online (Sandbox Code Playgroud)

但是Angular希望默认发送为Json:

{"username":"test@test.com","password":"Password1","rolename":"Admin"}
Run Code Online (Sandbox Code Playgroud)

这是我目前的代码:

    let body = {
      username: "test@test.com",
      password: "Password1",
      rolename: "Admin"
    };

 let headers = new HttpHeaders();
    headers = headers.set("Content-Type", "application/x-www-form-urlencoded");


    this.http.post(this.baseUrl, body, {
      headers: headers,
    })
      .subscribe(resp => {
      console.log("response %o, ", resp);
    });
Run Code Online (Sandbox Code Playgroud)

我也试过添加HttpParams:

let  httpParams = new HttpParams();
httpParams.append("username", "test@test.com");
httpParams.append("password", "Password1");
httpParams.append("rolename", "Admin");

...
headers: headers,
      params: httpParams
Run Code Online (Sandbox Code Playgroud)

但HttpParams似乎没有任何效果.

知道如何对请求进行URL编码而不是Json吗?

javascript angular

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

MySQL - 连接表,仅检索Max ID

我已经在其他帖子上看到了类似的解决方案,但我一直在将问题应用于我的具体问题.

这是我最初的加入:

SELECT service_note_task, comment_id, comment FROM service_note_task LEFT JOIN service_note_task_comments ON service_note_task.service_note_task_id = service_note_task_comments.service_note_task_id;  
Run Code Online (Sandbox Code Playgroud)

结果如下:

+-----------------------------+------------+--------------+
| service_note_task           | comment_id | comment      |
+-----------------------------+------------+--------------+
| This is service note task 3 |         25 | Comment      |
| This is service note task 3 |         26 | Comment Blah |
| This is service note task 3 |         36 | aaa          |
| This is service note task 2 |         13 | Awesome comm |
| This is service note …
Run Code Online (Sandbox Code Playgroud)

sql max greatest-n-per-group

10
推荐指数
1
解决办法
1万
查看次数

Ionic 4:使用环境配置选项运行 Livereload 的问题

在模拟器或设备上运行我的 Ionic 4 应用程序时,我似乎在使用配置标志和 livereload 标志时遇到问题。我根据此处的文档设置我的环境:https : //ionicframework.com/docs/cli/commands/cordova-run

和这里:

https://ionicframework.com/docs/appflow/quickstart/environment

此 cli 命令将正确设置环境:

ionic cordova emulate android --configuration=qa
Run Code Online (Sandbox Code Playgroud)

这将正确运行 livereload:

ionic cordova emulate android --livereload
Run Code Online (Sandbox Code Playgroud)

但是当我尝试组合标志时:

ionic cordova emulate android --livereload --configuration=qa
Run Code Online (Sandbox Code Playgroud)

我收到一个错误:数据路径“”不应该有额外的属性(浏览器目标)。

如果有帮助,这是我的离子信息,任何见解将不胜感激:

Ionic:

   Ionic CLI                     : 5.4.2
   Ionic Framework               : @ionic/angular 4.11.0
   @angular-devkit/build-angular : 0.801.3
   @angular-devkit/schematics    : 8.1.3
   @angular/cli                  : 8.1.3
   @ionic/angular-toolkit        : 2.0.0

Cordova:

   Cordova CLI       : 9.0.0 (cordova-lib@9.0.1)
   Cordova Platforms : android 8.1.0, ios 5.0.1
   Cordova Plugins   : cordova-plugin-ionic-keyboard 2.1.3, cordova-plugin-ionic-webview 4.1.2, (and 20 other …
Run Code Online (Sandbox Code Playgroud)

angular ionic4

9
推荐指数
1
解决办法
241
查看次数

Windows 7上的Ruby on Rails RMagick

好吧,我一直在尝试在Windows 7 x64机器上安装Rmagick.我已经查看了Stack Overflow和其他网站上的每一个教程,但无论我遵循哪个教程,我都会收到"无效的驱动器规范"错误.我的环境来自http://railsinstaller.org/.有没有人最近成功安装了Rmagick,可以指出我正确的方向?谢谢,这让我发疯,但我真的必须让它发挥作用.

ruby ruby-on-rails rmagick

8
推荐指数
1
解决办法
9297
查看次数

Android Parse:无法更新本地用户

我在自定义ParseUser对象中有一个名为Approved的自定义布尔字段.我们通过网络应用将此字段从false更改为true.根据文档,我应该能够在使用fetchInBackground()更改标志后更新currentUser,如下所示:

ParseUser.getCurrentUser().fetchInBackground(new GetCallback<ParseObject>() {
    @Override
    public void done(ParseObject parseObject, ParseException e) {
        Log.v("qwer", "fetched User: " + ((CustomUser)parseObject).isApproved());
    }
});
Run Code Online (Sandbox Code Playgroud)

但即使已批准的标志已设置为true,从服务器返回的结果始终为false.除非我注销并再次登录,否则currentUser和相应的字段将与服务器同步.

为什么fetchInBackground()不能为本地用户工作,如果我错误地使用它,我该如何更新currentUser.

android parse-platform

8
推荐指数
1
解决办法
431
查看次数

对齐选定的微调器项目

我试图稍微调整所选项目在微调器中的位置.不是下拉列表项,因为我已经在我的适配器中有一个自定义视图,但具体是所选项.

正如您在屏幕截图中看到的,"Any"是当前选定的项目.但它在容器内奇怪地对齐,因为它必须容纳下拉列表中最长的字符串,即"Dark Purple Burnt Sienna"(或其他).我想将所选文本对齐到右边,以便"Any"位于下拉指示符旁边,而不是在中间输出.

我试图调整我的自定义微调器项视图,但它对所选项没有任何影响.

我还尝试在Spinner本身上设置重力和文本对齐,但它没有效果.

这是图像和xml:

在此输入图像描述

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textColor="@color/default_black"
        android:layout_centerVertical="true"
        android:text="Color" />

    <Spinner
        android:id="@+id/spn_color"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"/>

</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

编辑:这是我的适配器:

public class ColorsAdapter<T> implements SpinnerAdapter {
    ArrayList<String> mColors;
    ArrayList<Integer> mValues;
    Context mContext;

    public ColorsAdapter(ArrayList<String> colors, ArrayList<Integer> values,
                              Context context) {
        mContext = context;
        mColors = colors;
        mValues = values;
    }

    @Override
    public int getCount() {
        return mColors.size();
    }

    @Override
    public Object getItem(int position) {
        return mColors.get(position);
    }

    @Override
    public long getItemId(int position) …
Run Code Online (Sandbox Code Playgroud)

android android-spinner

8
推荐指数
1
解决办法
1441
查看次数

ViewPager片段不在onCreate中启动

无论我是否尝试使用onCreate(),onCreateView()或onResume(),我似乎都在更新我在ViewPager中使用的片段时出现问题.以下是我在MainFragment中设置ViewPager的方法:

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
       View rootView = inflater.inflate(R.layout.fragment_main_screen, container, false);

        mPager = (ViewPager)rootView.findViewById(R.id.pager);
        mPager.setOffscreenPageLimit(2); // So all 3 pages are loaded at once.
        mAdapter = new JournalPagerAdapter(getActivity().getSupportFragmentManager(), this);
        mPager.setAdapter(mAdapter);

        // Add bar graph to view
        mGraphLayout = (LinearLayout) rootView.findViewById(R.id.journalGraph);
        updateGraph();
        mGraphLayout.addView(mGraphView);

        mPainFrag = (PainFragment)mAdapter.getRegisteredFragment(0);
        // Null pointer here, but if I put the action in a button listener, it works.
        mPainFrag.setScale(mEntry.getPain());
...
Run Code Online (Sandbox Code Playgroud)

我通过FragmentPagerAdapter中的一些重写方法访问片段:

public class JournalPagerAdapter extends FragmentPagerAdapter {

    SparseArray<Fragment> registeredFragments = new SparseArray<Fragment>(); …
Run Code Online (Sandbox Code Playgroud)

android android-fragments android-viewpager

7
推荐指数
1
解决办法
1350
查看次数

使用 Cordova 构建时定义 Android Gradle 插件版本

使用 Cordova 构建 Android 项目时,在 Android Studio 中打开时收到以下消息:

在此输入图像描述

我的 build.gradle 文件反映了插件差异(尽管定义的 Gradle 版本是正确的):

dependencies {
        classpath 'com.android.tools.build:gradle:3.0.0'
    }
Run Code Online (Sandbox Code Playgroud)

我想知道是否有一种方法可以配置 Cordova 来显式定义 Android Gradle 插件版本。

android gradle cordova android-gradle-plugin gradle-plugin

6
推荐指数
1
解决办法
4437
查看次数

Firebase 应用程序分发中链接到 Google Play 的问题

我正在尝试通过 Firebase App Distribution 分发 Android 应用程序包。我正在关注此处的文档:https ://support.google.com/firebase/answer/6392038?authuser=1

然而,我似乎陷入了“如何链接”部分,因为 Google Play 集成卡告诉我“缺少所需的权限”。

在此输入图像描述

我相信我满足链接的先决条件:

  • 我以所有者身份登录 Firebase 和 Google Play。
  • 该应用程序已注册到 Firebase 和我的 Google Play 开发者帐户。
  • Google Play 和 Firebase 中的应用共享相同的包名称。
  • 该应用程序在 Play 商店的 Production 中发布。

不确定还需要什么,或者我是否遗漏了一些东西。任何帮助,将不胜感激。

firebase-app-distribution

6
推荐指数
1
解决办法
2317
查看次数