小编Sin*_*ami的帖子

如何为变量创建更改侦听器?

假设我使用该语句定义了一些变量int someVariable;.代码运行时,变量的值会发生变化.

如何跟踪此变量的变化?我怎样才能实现一些行为类似onSomeVariableChangedListener的Listener?

我还需要知道一个页面中的其他方法何时被执行,所以我可以在另一个类中设置一个Listener.

java variables event-handling

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

UserRecoverableAuthException:NeedPermission

我尝试按照教程:https://developers.google.com/android/guides/http-auth.

码:

token = GoogleAuthUtil.getToken(getApplicationContext(),
                        mEmail, mScope);
Run Code Online (Sandbox Code Playgroud)

表现:

<uses-permission android:name="android.permission.GET_ACCOUNTS"/>
<uses-permission android:name="android.permission.NETWORK"/>
<uses-permission android:name="android.permission.USE_CREDENTIALS"/>
<uses-permission android:name="android.permission.INTERNET"/>
Run Code Online (Sandbox Code Playgroud)

错误:

01-17 18:37:38.230: W/System.err(3689): com.google.android.gms.auth.UserRecoverableAuthException: NeedPermission
01-17 18:37:38.230: W/System.err(3689):     at com.google.android.gms.auth.GoogleAuthUtil.getToken(Unknown Source)
01-17 18:37:38.230: W/System.err(3689):     at com.google.android.gms.auth.GoogleAuthUtil.getToken(Unknown Source)
01-17 18:37:38.230: W/System.err(3689):     at com.example.mgoogleauth.MainActivity$GetIOStreamTask.doInBackground(MainActivity.java:39)
01-17 18:37:38.230: W/System.err(3689):     at com.example.mgoogleauth.MainActivity$GetIOStreamTask.doInBackground(MainActivity.java:1)
01-17 18:37:38.230: W/System.err(3689):     at android.os.AsyncTask$2.call(AsyncTask.java:287)
01-17 18:37:38.230: W/System.err(3689):     at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
01-17 18:37:38.230: W/System.err(3689):     at java.util.concurrent.FutureTask.run(FutureTask.java:137)
01-17 18:37:38.230: W/System.err(3689):     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
01-17 18:37:38.230: W/System.err(3689):     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
01-17 18:37:38.230: W/System.err(3689):     at java.lang.Thread.run(Thread.java:856)
Run Code Online (Sandbox Code Playgroud)

android google-drive-api google-play-services

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

键盘显示时如何向上移动整个布局?

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:orientation="vertical"
    android:layout_height="match_parent">

    <LinearLayout
        android:layout_gravity="bottom"
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <EditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />

        <Button
            android:layout_width="match_parent"
            android:layout_height="wrap_content" /> 
        </LinearLayout>    

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

在清单中:

 android:windowSoftInputMode="adjustPan"
Run Code Online (Sandbox Code Playgroud)

初始行为:

在此输入图像描述

目前的行为:

在此输入图像描述

期望的行为:

在此输入图像描述

如何实现所需的布局行为?adjustResize不适合,因为此选项调整布局大小.

谢谢你的回答!

android android-softkeyboard

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

webkit-line-clamp:文本对齐:右;打破文本溢出:省略号;

我的目标是:

  1. 限制文本行数
  2. 文本应该右对齐
  3. 文本溢出:3 点

text-align: right;当我添加到样式时,问题就开始了:3 个点的行为与没有text-align样式属性时不同:通常,3 个点位于文本容器之外(灰色)。

在此输入图像描述

比较“好”与“坏”风格;唯一的区别:“good”不包含text-align: right;样式属性。尝试使用这些样式中的字体大小,您会发现对于“好”样式,3 个点始终位于文本容器内(灰色背景),而对于“坏”样式,3 个点的位置是意外的(可能在内部)容器,或部分在里面,或完全在外面)

那么,是否有机会像“好”样式一样实现 3 点行为,但同时使文本正确对齐?考虑行数限制。

* {
  box-sizing: border-box;
}

body {
  height: 100vh;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #78b9f3;
  margin:0;
  font-family: "Arial";
}

.wrapper {
  display: flex;
  justify-content: center;
}

.card {
  background: #fff;
  box-shadow: 0 4px 24px 3px rgb(0 0 0 / 10%);
  padding: 20px;
  margin: 20px;
  width: 200px;
  height: auto;
  border-radius: 6px;
}

p …
Run Code Online (Sandbox Code Playgroud)

css

14
推荐指数
1
解决办法
3845
查看次数

Branch.io initSession返回空的referParams json

前提条件1.应用程序以LinkActivity开头,此时我们没有深层链接意图,没关系.

  1. 主要活动已启动.在那里,我们可以点击深层链接.
  2. 通过单击深层链接打开LinkActivity,uri是正确的,referParams json不为空(ok).但...
  3. 当我们重播第2步时:uri是正确的,但是reffering params是空的:"{}"; 所有其他尝试都具有相同的结果.

只有当我们暂停应用程序(例如切换到最近的应用程序菜单)然后返回到应用程序时 - 深层链接才能按预期工作,但只有在第一次尝试时才有效.可能是会话关闭的一些问题(但在当前版本的sdk中它自我控制会话关闭)

public class LinkActivity extends AppCompatActivity {

        private static final String TAG = LinkActivity.class.getSimpleName();

        @Override
        protected void onNewIntent(Intent intent) {
            setIntent(intent);
        }

        @Override
        protected void onStart() {
            super.onStart();

            Uri uri = getIntent().getData();

            Log.w(TAG, "uri: " + uri);

            Branch.getInstance().initSession(new Branch.BranchReferralInitListener() {
                @Override
                public void onInitFinished(JSONObject referringParams, BranchError error) {
                    Log.w(TAG, "json: " + referringParams);
                    startActivity(new Intent(LinkActivity.this, MainActivity.class));
                }
            }, uri, this);
        }
    }

    public class MainActivity extends AppCompatActivity {

        @Override
        protected void …
Run Code Online (Sandbox Code Playgroud)

android branch.io

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

如何获得微信授权令牌?

目标:获取我需要发送到应用服务器的令牌

问题:注册返回true,请求完成返回true,但onReqonResp没有被调用.这是代码:

public class WeChatActivity extends Activity implements IWXAPIEventHandler {

    private static final String APP_ID = ;
    private IWXAPI api;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_signin);

        api = WXAPIFactory.createWXAPI(this, APP_ID, true);
        api.handleIntent(getIntent(), this);

        regToWx();
        getAuthToken();
    }

    private void regToWx() {

        api.handleIntent(getIntent(), this);
        boolean registered = api.registerApp(APP_ID);

        L.e(this, "registered: " + registered);

    }

    @Override
    protected void onNewIntent(Intent intent) {
        super.onNewIntent(intent);

        setIntent(intent);
        api.handleIntent(intent, this);
    }

    public void getAuthToken() {
        SendAuth.Req req = new SendAuth.Req();
        req.scope = …
Run Code Online (Sandbox Code Playgroud)

android wechat

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

区分新旧时间

我需要知道新旧系统时间之间的差异值(用户更改后)

使用以下代码,我会抓住用户更改时间的时刻:

<receiver android:name=".TimeChangeReceiver">
    <intent-filter>
        <action android:name="android.intent.action.TIME_SET"></action>
    </intent-filter>
</receiver> 

public class TimeChangeReceiver extends BroadcastReceiver {
    private static final String TAG = TimeChangeReceiver.class.getSimpleName();

    @Override
    public void onReceive(Context context, Intent intent) {
        Log.d(TAG, "changed time: " + new Date(System.currentTimeMillis()));
    }
}
Run Code Online (Sandbox Code Playgroud)

例如当前时间10:00,用户将其更改为11:00 - onReceive方法调用,但时间已经更改,如何获取以前的值 - 10:00?

android

4
推荐指数
1
解决办法
902
查看次数