小编RKR*_*KRK的帖子

Android遥控器如何与Google TV配合使用

Google TV关于Android平台上的远程应用程序如何工作的任何想法 我今天刚试了一下.它通过wi-fi配对,它刚刚开始工作.它背后的概念是什么?它似乎没有使用Bluetooth.那么如果不在电视上安装任何组件,它是如何工作的呢?

android google-tv

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

在 Android 上从照片 URI 创建文件

我有一个 Android 应用程序,需要让用户从图库中选择一些图片并将这些图片发送到后端(连同一些其他数据)。

为了允许用户选择图片,我的 Fragment 中有以下内容:

private void pickImages() {
    Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
    intent.setType("image/*");
    intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true);
    startActivityForResult(intent, PICK_PHOTO_FOR_AVATAR);
}
Run Code Online (Sandbox Code Playgroud)

我在这里得到用户所选照片的​​结果:

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == PICK_PHOTO_FOR_AVATAR && resultCode == Activity.RESULT_OK) {
        if (data == null) {
            //Display an error
            Toast.makeText(getActivity(), "There was an error getting the pictures", Toast.LENGTH_LONG).show();
            return;
        }

        ClipData clipData = data.getClipData();
        String fileName = null, extension = null;

        //if ClipData is null, then we …
Run Code Online (Sandbox Code Playgroud)

java android photo file multipart

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

导航组件生命周期

我已经尝试了一段时间的导航组件,但是以某种方式没有得到当前导航组件生命周期背后的原因(或解释)。这里有一些需要澄清的地方。

1.片段到片段流

在导航组件中,每次访问(或重新访问)时都会重新创建每个片段(或说页面)。因此,当您位于A并转到时B,它会A被销毁,之后再返回时A(如按返回按钮)A是从拉伸中创建的。

在传统的“活动”模式中,当您返回时,A它会一直指向,onResume因为移至时它并没有被破坏B。是否有任何原因在导航组件中更改了此模式?

重新创建的问题是,当您拥有大量数据并且需要花费一些时间来重绘时,感觉就像应用程序冻结了一样。一个简单的主页就是一个例子(例如Facebook NewsFeed)。可以使用保留数据来处理数据,ViewModel但是再次绘制所有提要需要时间,并且将冻结。

休闲产生了另一个问题。假设这样的场景:A有一个Collapsing AppBarNestedScrollView。用户向下滚动并AppBar会折叠,然后用户移至其他页面B。当他返回时A,它将被重画并AppBar扩展。我不确定这是一个错误还是应该做些修复?因此,这里也欢迎任何解决方案。

2.活动娱乐

如果出于某些原因(例如方向改变)而重新创建活动,则将重新创建导航组件中的每个页面,直到当前目标为止。尽管onCreateonCreateView调用Fragment的方法,但我看不出在Activity休闲中创建Fragments的意义。任何解释都将受到欢迎。

android android-fragments android-jetpack android-architecture-navigation

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

更改夜间模式后刷新后台堆栈活动

在更改应用程序的夜间模式后,我已经看到了很多有关重新创建当前活动的问题和答案,但是在如何刷新后退堆栈活动方面我什么都没看到。

说我有返回堆栈A> B> C。活动C允许通过调用更改夜间模式AppCompatDelegate.setDefaultNightMode()。调用之后,当前活动(C)可以使用delegate.applyDayNight()或刷新其主题recreate()

但是,当用户导航回B或A时,无论白天还是晚上,活动仍在使用“旧”模式。

我试图在活动中添加类似的内容:

override fun onResume() {
  super.onResume()
  delegate.applyDayNight()
}
Run Code Online (Sandbox Code Playgroud)

但这似乎不起作用。

我做了多次尝试来解决这个问题:

一种想法是完全按照此处此处的建议重新创建后堆栈,但是由于后堆栈不是静态的,因此对我而言这是不可行的。

另一个想法是让一个类处理夜间模式更改并提供LiveData。每个Activity都会监听LiveData进行模式更改并调用recreate()。但是,我们陷入了无限循环,因为活动将在开始收听LiveData之后直接重新创建。

我很难相信,我是第一个尝试在更改夜间模式后从后台刷新“活动”的人。我错过了什么?

谢谢!

android android-theme kotlin android-night-mode

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

classnotfoundException 获取如果我在成功下载后启动动态模块中的活动

通过内部测试,我可以下载动态功能模块。成功下载后,我正在使用包名称打开动态模块中的活动,但我遇到了类未找到异常。我检查了 APK 大小,但大小没有增加。下面是我的代码。请帮忙

下面是我下载模块的代码。我使用的是 Playstore 中提供的内部测试。

     public void loadFeatureTwo() {
    // Builds a request to install the feature1 module
    SplitInstallRequest request =
            SplitInstallRequest
                    .newBuilder()
                    // You can download multiple on demand modules per
                    // request by invoking the following method for each
                    // module you want to install.
                    .addModule("feature2")
                    .build();

    // Begin the installation of the feature1 module and handle success/failure
    splitInstallManager
            .startInstall(request)
            .addOnSuccessListener(new OnSuccessListener<Integer>() {
                @Override
                public void onSuccess(Integer integer) {
                    // Module download successful
                   /* Intent intent = …
Run Code Online (Sandbox Code Playgroud)

java android android-app-bundle

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

检测是否从Flutter / Dart启用了iOS13黑暗模式

我正在编写适用于Android和iOS的Flutter应用,该应用将根据iOS的暗模式状态更改其样式/主题。

目前在Flutter中是否有类似MediaQuery.isDarkModeEnabled的东西?

这里有一个GitHub问题开放但是Flutter团队必须解决很多问题,所以我看不到这个实现得太早。

我可以从iOS特定的代码通道使用'traitCollection.userInterfaceStyle',但是我对使用Flutter / Dart应用程序添加特定于平台的代码不是很熟悉。目前正在研究此解决方案!

例如,某人可能拥有CupertinoPicker具有自适应颜色的:

CupertinoPicker(
    backgroundColor: isDarkModeEnabled ? Colors.black : Colors.white,
    children: items.map((thisItem) => Text(thisItem.name)).toList(),
    itemExtent: 32,
    onSelectedItemChanged: (newItem) {
        setState(() => this.item = items[newItem]);
    }
)
Run Code Online (Sandbox Code Playgroud)

ios dart flutter ios-darkmode

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

如何在不同进程中使用 LocalBroadcastManager 在 Activity 和 Service 之间进行通信

我有一个在 Manifest 和MapboxMapActivity中定义的不同进程中的服务,我只是想知道如何使用LocalBroadcastManager.

我试图将服务上下文传递给LocalBroadcastManager.getInstance()然后LocalBroadcast在我的活动中注册一个。它注册成功,但无法从我的服务中获取信息!

这是我的代码,在我的服务中...

Intent locationIntent = new Intent("LocationIntent");
        locationIntent.setAction("updatedLocations");
        locationIntent.putExtra("list",updatedList);
LocalBroadcastManager.getInstance(getApplicationContext()).sendBroadcast(locationIntent);
Run Code Online (Sandbox Code Playgroud)

...我在我的活动中注册它:

LocalBroadcastManager.getInstance(getApplicationContext()).registerReceive``r(new BroadcastReceiver() {
            @Override
            public void onReceive(Context context, Intent intent) {
                Timber.tag("localB").d("registered!");
                if (intent != null && intent.getAction() != null && 
intent.getAction().equals("updatedLocations")) {
                    sawLocationsList = (HashMap<Integer, 
MarkerItem>)intent.getSerializableExtra("list");
                    Timber.tag("sawL").d("updated");
                }
            }
        } , new IntentFilter("LocationIntent"));
Run Code Online (Sandbox Code Playgroud)

当我运行应用程序时,我的服务发送广播,但我的活动没有收到广播消息!

我认为这个问题是因为我的服务是在我的清单中的另一个进程中定义的......

android:name=".services.ForegroundService"
            android:enabled="true"
            android:exported="false"
            android:process=":ForegroundService"
Run Code Online (Sandbox Code Playgroud)

...但我想以这种方式进行交流,因为处于不同的过程有助于我实现电池效率目标。

java android android-activity android-broadcast localbroadcastmanager

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

使用最新的com.jakewharton.rxbinding3:rxbinding:3.0.0-alpha2库时找不到RxTextView和其他小部件

我想在我的项目中将RxJava绑定API用于Android UI小部件。

因此,请遵循本网站' https://github.com/JakeWharton/RxBinding ' 的指导

但是我无法在Kotlin文件中导入任何Android UI小部件。 如果我在Java File中使用这些小部件,那么在哪里工作也很好。 因此,一直没有找到这个问题的实际。

作为参考,以下是在同一项目中使用的gradle文件和类文件(kotlin和Java)

build.gradle

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation"org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
    implementation 'androidx.appcompat:appcompat:1.0.0-beta01'
    implementation 'androidx.core:core-ktx:1.2.0-alpha01'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'androidx.test:runner:1.1.0-alpha4'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0-alpha4'
    implementation 'io.reactivex.rxjava2:rxjava:2.2.8'
    implementation 'io.reactivex.rxjava2:rxandroid:2.1.1'
    //RxBinding
    implementation 'com.jakewharton.rxbinding3:rxbinding:3.0.0-alpha2'
}
Run Code Online (Sandbox Code Playgroud)

BindingExample.java类

在此处输入图片说明

RxBindingExample.kt类

在此处输入图片说明

已尝试在SO上探索此问题,但对于lib'com.jakewharton.rxbinding2:rxbinding'的先前版本可用问题或解决方案

android kotlin rx-android rx-binding rx-java2

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

kotiln-类不是抽象的,并且不实现抽象的基类成员(RecyclerView)

我是Kotlin的新手,我从一个教程尝试了RecycleView实现,但是得到了这个

class MainAdapter: RecyclerView.Adapter<CustomViewHolder>() {

    val videoTitles = listOf("First Title","Second","Third")

    override fun getItemCount(): Int {
        return videoTitles.size
    }

    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): CustomViewHolder {
        val layoutInflater = LayoutInflater.from(parent.context)
        val cellForRow = layoutInflater.inflate(R.layout.video_row,parent,false)
        return CustomViewHolder(cellForRow)
    }

    override fun onBindViewHolder(holder: CustomViewHolder?, position: Int) {
        val videoTitle = videoTitles.get(position)
        holder.view.textView_video_title.text = videoTitle
    }

}

class CustomViewHolder(val view: View): RecyclerView.ViewHolder(view){


}
Run Code Online (Sandbox Code Playgroud)

我正在使用Android Studio 3.4,是否会导致错误?

android kotlin android-recyclerview

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

在 LinearLayout 中将文本视图左对齐(水平)

我试图让我的Textview左对齐已经尝试过。但android:gravity="left"什么也没发生。

这是我的 XML 代码:

  <LinearLayout
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:orientation="horizontal">
         <TextView
          android:id="@+id/textView11"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:layout_margin="10dp"
          android:layout_weight="1"
          android:text="Email:"
          android:textSize="20dp"/>
        <EditText
          android:id="@+id/editTextAddress"
          android:layout_width="match_parent"
          android:layout_height="wrap_content"
          android:layout_margin="10dp"
          android:layout_weight="1"
          android:background="@drawable/bg"
          android:hint="Enter Address"/>
  </LinearLayout>
Run Code Online (Sandbox Code Playgroud)

java xml android android-layout android-xml

-1
推荐指数
1
解决办法
724
查看次数