小编Col*_*ire的帖子

如何从资源ID获取资源名称


在我的布局中,我已经定义了类似的东西.

<RadioButton
    android:id="@+id/radio1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Dnt want this text" />
Run Code Online (Sandbox Code Playgroud)

假设活动中的某些函数返回此id(radioButton的id).现在我想从这个id 得到这个文本radio1.总之,我想要检索写入的文本radio1android:id="@+id/radio1"

有人能告诉我怎么可能?

android

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

Android单击PositiveButton后不要关闭AlertDialog

点击PositiveButton后我可以不解雇我的AlertDialog吗?

我想继续在对话框中显示我的ArrayAdapter listWords上的更新内容.

这是我的代码.

AlertDialog.Builder sayWindows = new AlertDialog.Builder(MapActivity.this);

final EditText saySomething = new EditText(MapActivity.this);

sayWindows.setPositiveButton("ok",
            new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int which) {
                    say = userName + " Says: "+saySomething.getText();
                    showPosition.setText(say);                      
                }
            });

sayWindows.setNegativeButton("cancel",
            new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int which) {
                    dialog.dismiss();
                }
            });

sayWindows.setAdapter(listWords, null);
sayWindows.setView(saySomething);
sayWindows.create().show();
Run Code Online (Sandbox Code Playgroud)

android android-alertdialog

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

IIS应用程序池 - 停止/启动与回收

我注意到在我的一个生产网络应用程序中,当我手动回收应用程序池时,基于在任务管理器中观察,回收的工作进程可能需要超过60秒以实际完全销毁.但是,如果我完全停止应用程序池,则工作进程几乎立即消失 - 在1-2秒内消失.

所以,我的问题是双重的:

a)当应用程序池被回收而不是停止时,为什么要花费这么长时间来销毁进程(更有意义的是,释放由它使用/锁定的资源); 和

b)假设我已经阻止流量被定向到服务器,是否有任何理由不停止/启动而不是回收?


编辑:
为了澄清,在我回收或停止应用程序池之前,我阻止流量被发送到有问题的服务器(服务器在负载平衡群集中,我从负载均衡器中删除服务器).因此,理论上,在我对应用程序池执行任何操作时,不应该向网站发出请求.


编辑Part Deux:
在阅读Igal的链接后,对我来说似乎很明显发生了什么.当我回收应用程序池时,新进程已启动,但由于根本没有流量,因此它没有将新进程注册为正常运行,因此在超时之前它不会关闭旧进程(即90秒).

有了这些知识,我很清楚"回收"功能专门用于在实时服务器的中游使用,并且因为我事先手动排出流量,所以我应该使用停止/启动.

iis worker-process application-pool recycle

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

Android:OnTouch,MotionEvent.ACTION_MOVE无法识别?

这是我的代码,我想检测我的手指在屏幕上的时间,所以当我触摸屏幕时,我检测到ACTION_DOWN但是当我用手指向下移动屏幕时,ACTION_MOVE无法识别,ACTION_UP 你也不知道为什么?

        float x=0;
protected void onCreate(Bundle savedInstanceState) {
        do things

        ImageView image2 = (ImageView) findViewById(R.id.imageView3);
        image2.setOnTouchListener(new OnTouchListener(){

        @Override
        public boolean onTouch(View arg0, MotionEvent arg1) {
            if (arg1.getAction()==MotionEvent.ACTION_DOWN) {

                x=arg1.getX();
            }
            else {
                if (arg1.getAction()==MotionEvent.ACTION_MOVE){
                    if (arg1.getX()>x) {
                    do things
                    }
                }
                else {
                    if (arg1.getAction()==MotionEvent.ACTION_UP){
                        do things
                    }
                }
            }
}
Run Code Online (Sandbox Code Playgroud)

android ontouchlistener actionevent

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

如何在底部检测滚动nestedscrollview android的位置?

我只是想在底部检测滚动nestedscrollview android的位置,以及调用函数.我的代码是:

scroll.getViewTreeObserver()
      .addOnScrollChangedListener(new ViewTreeObserver.OnScrollChangedListener() {
           @Override
           public void onScrollChanged() {
               int totalHeight = scroll.getChildAt(0).getHeight();
               int scrollY = scroll.getScrollY();
               Log.v("position", "totalHeight=" + totalHeight + "scrollY=" + scrollY);
               if (scrollY==totalHeight) {
                   getPlaylistFromServer("more");
               }
           }
      });
Run Code Online (Sandbox Code Playgroud)

但总高度与MAX ScrollY不同.怎么解决?

android android-nestedscrollview

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

Exoplayer无限缓冲状态

我正在尝试使用React Native视频包将exoplayer用于我的React Native应用程序.

我有一个带有HLS流和mp4视频的应用程序,这些视频存储在我的服务器(https)上.

浏览视频时,播放器会陷入无限缓冲状态并保持这种状态,直到我重新启动应用程序.这完全是随机的.重现问题的唯一方法是观看视频并多次切换源.

查看Android logcat时没有错误.adb bugreport也不起作用.

05-22 10:51:07.884 22911-22911/eu.domain.app I/EXO PLAYER: isBuffering - true
05-22 10:51:08.180 22911-25217/eu.domain.app I/ACodec:  [] Now uninitialized
05-22 10:51:08.181 22911-25221/eu.domain.app I/ACodec: [] onAllocateComponent
05-22 10:51:08.184 22911-25221/eu.domain.app I/OMXClient: MuxOMX ctor
05-22 10:51:08.210 22911-25221/eu.domain.app I/ACodec: [OMX.Exynos.avc.dec] Now Loaded
05-22 10:51:08.214 22911-25220/eu.domain.app I/MediaCodec: [OMX.Exynos.avc.dec] setting surface generation to 23460870
05-22 10:51:08.217 22911-25221/eu.domain.app I/ACodec: can't find wfdsink-exynos-enable
05-22 10:51:08.226 22911-25221/eu.domain.app I/ACodec: codec does not support config priority (err -1010)
05-22 10:51:08.235 22911-25221/eu.domain.app I/ACodec: [OMX.Exynos.avc.dec] Now Loaded->Idle …
Run Code Online (Sandbox Code Playgroud)

android exoplayer react-native react-native-video

22
推荐指数
1
解决办法
696
查看次数

在要求运行时权限时检查"永不再询问"框是否会禁用将来的对话框?

如果用户拒绝再次请求再次检查的运行时权限,这是否会禁用将来要求相同权限的任何能力?用户是否必须通过设置才能启用该权限?

在我的申请中,当我打电话

ActivityCompat.requestPermissions(this, 
            new String[]{Manifest.permission.READ_PHONE_STATE}, 
            0)
Run Code Online (Sandbox Code Playgroud)

并且该权限先前已被拒绝,而且再也没有要求检查,它根本不会显示对话框.这是预期的行为吗?

android android-permissions

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

将com.google.android.gms的版本更新为15.0.2

我已更新了Firebase SDK版本.但是将com.google.android.gms版本更新为15.0.2时出错.我试图制作相同版本的firebase和google服务,但它不会工作.

依赖

dependencies {
implementation 'com.google.firebase:firebase-messaging:15.0.2'
implementation 'com.android.support:design:26.1.0'
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation 'com.google.firebase:firebase-ads:15.0.1'
androidTestImplementation('com.android.support.test.espresso:espresso-core:2.2.2', {
    exclude group: 'com.android.support', module: 'support-annotations'
})
implementation 'com.android.support:appcompat-v7:26.1.0'
implementation 'com.android.support.constraint:constraint-layout:1.1.0'
implementation 'org.parceler:parceler-api:1.1.9'
annotationProcessor 'org.parceler:parceler:1.1.9'
implementation 'com.google.code.gson:gson:2.8.2'
implementation 'com.squareup.retrofit2:retrofit:2.3.0'
implementation 'com.squareup.retrofit2:converter-gson:2.3.0'
implementation 'io.reactivex:rxjava:1.2.3'
implementation 'io.reactivex:rxandroid:1.2.1'
implementation 'com.jakewharton.rxbinding:rxbinding:1.0.0'
implementation 'com.squareup.retrofit2:adapter-rxjava:2.1.0'
androidTestImplementation 'com.google.code.findbugs:jsr305:3.0.1'
implementation 'com.squareup.okhttp3:logging-interceptor:3.2.0'
implementation 'com.jakewharton:butterknife:8.8.1'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'
debugCompile 'com.squareup.leakcanary:leakcanary-android:1.5.4'
releaseCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.5.4'
implementation 'com.google.dagger:dagger-android:2.11'
implementation 'com.google.dagger:dagger-android-support:2.11'
// if you use the support libraries
annotationProcessor 'com.google.dagger:dagger-android-processor:2.11'
annotationProcessor 'com.google.dagger:dagger-compiler:2.13'
implementation 'com.google.auto.value:auto-value:1.5.2'
implementation 'com.jakewharton.timber:timber:4.1.2'
implementation 'org.greenrobot:eventbus:3.0.0'
testImplementation …
Run Code Online (Sandbox Code Playgroud)

android firebase android-studio

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

Android LiveData - 如何在不同的活动上重用相同的ViewModel?

示例ViewModel:

public class NameViewModel extends ViewModel {
    // Create a LiveData with a String
    private MutableLiveData<String> mCurrentName;

    public MutableLiveData<String> getCurrentName() {
        if (mCurrentName == null) {
            mCurrentName = new MutableLiveData<>();
        }
        return mCurrentName;
    }

}
Run Code Online (Sandbox Code Playgroud)

主要活动:

mModel = ViewModelProviders.of(this).get(NameViewModel.class);

// Create the observer which updates the UI.
final Observer<String> nameObserver = textView::setText;

// Observe the LiveData, passing in this activity as the LifecycleOwner and the observer.
mModel.getCurrentName().observe(this, nameObserver);
Run Code Online (Sandbox Code Playgroud)

我想调用mModel.getCurrentName().setValue(anotherName);第二个活动并使MainActivity接收更改.那可能吗?

java android android-livedata

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

为什么popbackstack调用片段的onCreateView?

试图解释为什么在我弹回堆叠片段时调用onCreateView.

使用以下代码:

fragmentManager.popBackStack("tag1", 1); 
ft = fragmentManager.beginTransaction(); 
ft.remove(fragmentManager.findFragmentByTag("tag1")); 
ft.commit();
Run Code Online (Sandbox Code Playgroud)

logcat的:

FATAL EXCEPTION: main
java.lang.IndexOutOfBoundsException: Invalid index 79, size is 79
        at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:255)
        at java.util.ArrayList.get(ArrayList.java:308)
        at edu.pacific.pocketrx.FlashCardFrag.onCreateView(FlashCardFrag.java:72)
        at android.support.v4.app.Fragment.performCreateView(Fragment.java:1500)
        at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:927)
        at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1104)
        at android.support.v4.app.BackStackRecord.popFromBackStack(BackStackRecord.java:764)
        at android.support.v4.app.FragmentManagerImpl.popBackStackState(FragmentManager.java:1562)
        at android.support.v4.app.FragmentManagerImpl$3.run(FragmentManager.java:495)
        at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1467)
        at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:440)
        at android.os.Handler.handleCallback(Handler.java:730)
        at android.os.Handler.dispatchMessage(Handler.java:92)
        at android.os.Looper.loop(Looper.java:137)
        at android.app.ActivityThread.main(ActivityThread.java:5103)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:525)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
        at dalvik.system.NativeStart.main(Native Method)
Run Code Online (Sandbox Code Playgroud)

删除片段的代码:

fragmentManager.popBackStack("tag1", 1);
ft = fragmentManager.beginTransaction();
ft.remove(fragmentManager.findFragmentByTag("tag1"));
ft.commit();
Run Code Online (Sandbox Code Playgroud)

android fragment

16
推荐指数
1
解决办法
6550
查看次数