小编Tan*_*nir的帖子

java中数据抽象和过程抽象的区别

我试图理解java中数据抽象和过程抽象之间的区别。

我理解过程抽象是利用接受形式参数的方法并向用户隐藏实现。这在语言中完全有意义PL/SQL,因为我可以选择在PL/SQL.

但我对数据抽象和过程抽象感到困惑,因为即使 Java 中的过程也是作为某个类的一部分实现的。每个类还可以有一些静态方法(public static),包中的每个其他类都可以使用它们。

请有人能明确区分这两者(就java而言)

java abstraction

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

Android MediaPlayer java.io.IOException:准备失败。:status = 0x1

我正在使用Android的MediaPlayer在我的应用程序中设置URL流。我尝试了几种不同的方法来处理退出代码和错误:(1,-2147483648)。

我尝试了几种不同的流,但是似乎无法使MediaPlayer正常工作。我曾考虑过要使用Google的ExoPlayer,但它要复杂一些,如果我丢失了某些东西,我不想跳船。

媒体播放器:

private MediaPlayer player;
String url = "http://199.180.75.118:80/stream";     //temp stream
private void initializeMediaPlayer() {
    player = new MediaPlayer();
    player.setAudioAttributes( new AudioAttributes.Builder()
        .setUsage(AudioAttributes.USAGE_MEDIA)
        .setContentType(AudioAttributes.CONTENT_TYPE_MUSIC)
        .build());

    try { 
        player.setDataSource(url);
        player.prepareAsync();
        player.setOnPreparedListener(new OnPreparedListener() {
            public void onPrepared(MediaPlayer mp) {
                mp.start();
            }
        });
    } catch (IllegalArgumentException e) {
        e.printStackTrace();
    } catch (IllegalStateException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    } 
}
Run Code Online (Sandbox Code Playgroud)

我还包括了android权限:

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

我试图使用原始的流类型(但是它引发了不建议使用的警告):

player.setAudioStreamType(AudioManager.STREAM_MUSIC);
Run Code Online (Sandbox Code Playgroud)

因此,我改用了.setAudioAttributes(...) 我曾经尝试运行的方法,prepare()而不是prepareAsync()给出问题的标题,但仍然导致相同的错误。我没有运气就调查了实际的错误定义(Android MediaPlayer错误(1,-2147483648))。我认为这不是源问题,因为我尝试了其他多个流。如果我跳过了可能导致我的错误的关键内容,请告诉我。

编辑 如果有帮助,我一直在调查我的通话,发现MediaPlayer从未通话onPrepared(...) …

android android-mediaplayer urlstream

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

使用 Android studio 生成签名 APK 时出现错误

这是事件日志中不断出现的错误:

生成签名的 APK:构建 APK 时出错。您可以在“消息”视图中找到错误

消息中是这样的:

Android资源编译失败输出:

C:\Users\me\AndroidStudioProjects\SimpleCalculator2\app\src\main\res\mipmap-xxhdpi\ic_launcher.png: error: failed to read PNG signature: file does not start with PNG signature.

命令:

 C:\Users\me\.gradle\caches\transforms-1\files-1.1\aapt2-3.2.0-4818971- windows.jar\6c29a9fd1a7f2d4d5ddcbb0cbfa348c6\aapt2-3.2.0-4818971-windows\aapt2.exe compile --legacy\-o\

C:\Users\me\AndroidStudioProjects\SimpleCalculator2\app\build\intermediates\res\merged\release \

C:\Users\me\AndroidStudioProjects\SimpleCalculator2\app\src\main\res\mipmap-xxhdpi\ic_launcher.png
Run Code Online (Sandbox Code Playgroud)

守护进程:AAPT2 aapt2-3.2.0-4818971-windows 守护进程 #0

android android-build apk android-studio

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

我可以在constraintLayout动画完成时设置回调吗

我刚刚开始学习动画,我正在尝试在约束布局更改动画完成后添加另一个视图。我添加了一个监听器,用于约束布局发生变化的时间,但在动画开始时触发,而不是在动画完成后触发。

        rootConstraintLayout.addOnLayoutChangeListener(new View.OnLayoutChangeListener() {
            @Override
            public void onLayoutChange(View v, int left, int top, int right, int bottom, int oldLeft, int oldTop, int oldRight, int oldBottom) {
                Log.d(TAG, "onLayoutChange: testing ");
            }
        });
Run Code Online (Sandbox Code Playgroud)

这是我用来更改布局的方法

    private void changeExamplePageLayout() {

        ConstraintSet constraintSetBeforeExample = new ConstraintSet();
        ConstraintSet constraintSetAfterExample = new ConstraintSet();

        constraintSetBeforeExample.clone(rootConstraintLayout);

        constraintSetAfterExample.clone(getContext(), R.layout.example_fragment_sub_set);

        TransitionManager.beginDelayedTransition(rootConstraintLayout);

        constraintSetAfterExample.applyTo(rootConstraintLayout);

    }
Run Code Online (Sandbox Code Playgroud)

任何指向我应该看的方向都将不胜感激。

android

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

有什么方法可以设置/获取 konva 形状的数据吗?

有什么方法可以在 konva 对象中设置/获取数据吗?

就像jquery一样使用方法'data'来设置和获取信息,例如: $('#abc').data('id','123') !

konvajs

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

在TextView中将drawable设置为文本末尾

我想将可绘制图像设置到文本的末尾,但它显示文本视图的末尾。

这是我的代码

<TextView
     android:id="@+id/tv_overweight_messsage"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content
     android:layout_marginTop="@dimen/activity_marginVertical_Large"
     android:gravity="center"
     android:text="dvdmnvkdnxknb vcnbvcxmnbxm,cbn,m vnnxmndxvbhddbv svbhzv"
     android:textColor="@color/required"
     android:textSize="@dimen/textSize_small"
     android:drawablePadding="@dimen/widget_padding"
     android:drawableRight="@drawable/img_infobn"
     android:visibility="gone"
     app:mfafont="@string/font_Questrial_Regular"
     tools:visibility="visible" />
Run Code Online (Sandbox Code Playgroud)

java android textview

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

Kotlin 数据类的扩展函数

我有一个看起来像这样的数据类

data class SuggestionResponse(
  val metadata: Metadata,
  val response: Response
)

data class Response(
 ///blah blah
)

data class Metadata(
  val timeleft: String,
  val totalTime: String
)
Run Code Online (Sandbox Code Playgroud)

现在我需要将此数据转换为不同类型的数据对象。我想编写一个扩展函数来完成此任务。让函数的名字是你好

我想像这样调用这个扩展函数

suggestionResponse.hello()

我如何编写扩展功能?。任何帮助将不胜感激

android kotlin data-class

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

通过视图模型在片段之间共享数据

根据https://developer.android.com/topic/libraries/architecture/viewmodel 上的“片段之间共享数据”部分,我们被告知在活动范围内创建一个 ViewModel 并在片段之间共享是要走的路.

这是在 ViewModel 中设置值的 Fragment

class MasterFragment : Fragment() {

    private lateinit var itemSelector: Selector

    private lateinit var model: SharedViewModel

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        model = activity?.run {
            ViewModelProviders.of(this).get(SharedViewModel::class.java)
        } ?: throw Exception("Invalid Activity")
        itemSelector.setOnClickListener { item ->
            // Update the UI
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这是使用属性集的细节片段

class DetailFragment : Fragment() {

    private lateinit var model: SharedViewModel

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        model = activity?.run {
            ViewModelProviders.of(this).get(SharedViewModel::class.java)
        } ?: throw Exception("Invalid Activity")
        model.selected.observe(this, …
Run Code Online (Sandbox Code Playgroud)

android android-viewmodel android-jetpack

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