小编Mar*_*usz的帖子

如何在linux中获取当前进程名称?

如何在C中获取进程名称?同名,在/proc/$pid/status.我不想解析该文件.有没有任何程序化的方法来做到这一点?

c linux

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

查看 RecyclerView 项目的模型

我的活动有一个谷歌的 ViewModel 来获取一些模型项目。然后将这些项目转换为 RecyclerView 的适配器项目。一个 RecyclerView 还支持多种类型的适配器项。

我想为这些模型对象中的每一个都有单独的视图模型对象,以便我可以将更复杂的逻辑封装在那个“小”视图模型中。

目前,当我有一些仅与某些适配器项相关的异步逻辑(需要在 onCleared() 中停止)时,我必须以某种方式通过主视图模型路由回调,以便正确取消注册所有内容。

我正在考虑使用,ViewModelProvider::get(key, modelClass)但我的物品随着时间的推移而变化,我找不到“清除”旧物品的好方法。

你在你的项目中如何处理这些案例?

编辑:要添加有关我关注的更多信息,也许用不同的词:我希望我的“小”ViewModel 与它所代表的模型项一样长。这意味着:

  • 我必须在这些项目的父项接收的相同场景中接收 onCleared() 回调
  • 当项目不再时,我必须接收 onCleared() 回调

编辑:请尝试将其与以 Fragments 作为项目的 ViewPager 进行比较。每个单独的模型项都表示为一个带有其 ViewModel 的 Fragment。我想实现类似的东西,但对于 RecyclerView。

android android-recyclerview android-viewmodel android-architecture-components

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

活动与透明背景

我想要实现的是具有类似对话框透明度的活动,其中RelativeLayout内容的可见性为100%.这是activity的xml:

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

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginBottom="50dip"
        android:layout_marginLeft="8dip"
        android:layout_marginRight="8dip"
        android:layout_marginTop="50dip">
        (...)
    </RelativeLayout>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

这很明显:

<activity
        android:name="com.acentic.rcontrol.activities.MyActivity"
        android:theme="@android:style/Theme.Translucent.NoTitleBar" >
</activity>
Run Code Online (Sandbox Code Playgroud)

现在背景仍然可见,我做错了什么?

---编辑:我补充说

android:background="#c0000000"
Run Code Online (Sandbox Code Playgroud)

到LinearLayout.现在背景是我想要的透明,但RelativeLayout里面的TextViews也是透明的......如何改变呢?

android android-activity

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

对于Lollipop及以上的仪器测试,"没有测试结果"

我的基于仪器(espresso)的测试不能在Lollipop +设备和模拟器上运行.它们可以在任何其他平台上正常运行 我和这个帖子中的人有相同的症状 - https://groups.google.com/forum/?fromgroups#!topic/adt-dev/QW5SuzQizNk

  • 我的测试是在src/androidTest/java /
  • 我已经设置了testInstrumentationRunner'android.support.test.runner.AndroidJUnitRunner'
  • 测试类是@RunWith(AndroidJUnit4.class)
  • 个人测试用@Test注释

我可以执行./gradlew connectedCheck并且测试在使用KitKat的设备上运行良好,但是当我尝试在Lollipop的设备上以相同的方式运行相同的测试时,我得到...

15:02:15.784 [WARN] [org.gradle.api.Task] XT1095上的测试 - 5.1失败:由于'java.lang.NoClassDefFoundError'导致仪表运行失败

15:02:16.011 [WARN] [org.gradle.api.Task] com.android.builder.testing.ConnectedDevice>未找到测试.[XT1095 - 5.1] FAILED

15:02:16.011 [警告] [org.gradle.api.Task]未找到测试.这通常意味着您的测试类不是您的测试运行器期望的形式(例如,不从TestCase继承或缺少@Test注释).

android android-testing android-espresso android-instrumentation

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

Android:在Activity.onPause()之后单击事件

有两个按钮,按钮A使用简单的Activity.startActivity()方法在其onClickListener中启动另一个活动,按钮B在其onClickListener中执行其他一些工作.

当我单击按钮B并紧接在按钮A之后,然后启动新活动,触发旧活动的onPause()生命周期事件,但是触发第二个按钮的onClick事件,但是在Activity.onPause()之后导致某些状态我的应用程序中的不一致.

有没有办法阻止触摸/点击事件在onPause()之后传递而不使用isPaused标志?

**编辑:**我的代码:

public class MainActivity extends AppCompatActivity {

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

        Button buttonA = (Button) findViewById(R.id.activity_button);
        buttonA.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                startActivity(new Intent(MainActivity.this, TestActivity.class));
            }
        });

        Button buttonB = (Button) findViewById(R.id.log_button);
        buttonB.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Log.e("TEST", "onClick");
            }
        });
    }

    @Override
    protected void onPause() {
        super.onPause();
        Log.e("TEST", "onPause");
    }
}
Run Code Online (Sandbox Code Playgroud)

基本上,如果你足够快,并在按钮A后面点击按钮B,那么在onPause之后会触发B的onClick.

android activity-lifecycle

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

如何通过不同的资源获取引用资源的 ID?

我想在运行时获取引用资源的 ID。例如这是我的代码:

<string name="d2c_entryroadblock_start_value" translatable="false">@string/get_started</string>
Run Code Online (Sandbox Code Playgroud)

我对R.string.get_started只有R.string.d2c_entryroadblock_start_value在运行时引用的 ID 感兴趣。

您还可以在下面的 APK 分析器中查看它的外观 - 我需要了解它 @ref/0x7f1302fc

APK分析器截图

android android-resources

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

UTF-8中的字符串到字节数组?

如何在UTF-8中将WideString(或其他长字符串)转换为字节数组?

freepascal utf-8 lazarus

8
推荐指数
3
解决办法
9024
查看次数

在SourceTree中添加前缀以提交消息

我通常从JIRA问题站点创建分支。因此,假设我的JIRA票证名称为“ SOMEBUG-356:软件错误”,那么分支名称将为:“ feature / SOMEBUG-356-bug-in-software”。

是否可以为SourceTree设置某种模板,该模板将添加前缀以提交消息,该消息的名称为我当前所在分支的JIRA票证?(如果我在分支“ feature / SOMEBUG-356-bug-in-software”中,它将添加SOMEBUG-356前缀。

git jira bitbucket-server atlassian-sourcetree

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

Perforce - 将本地文件标记为最新版本

我有一个以下问题:存储库中有许多巨大的文件(千兆字节),它们还没有在我的工作区中,但我已经将它们放在我的本地磁盘上,来自其他来源(与最新版本相同的副本).

有没有可能将这些本地文件移动到我的工作区的相应子目录并在P4服务器上标记它们,它们与最新版本相同,所以我不必再次下载它们?

提前致谢

perforce

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