小编Ski*_*ᴉʞS的帖子

以编程方式更改从API响应获得的颜色资源的值

比方说,在我的API调用中,我有一个被调用的参数color.是否可以编辑或修改现有的R.colors.color以从API结果中分配颜色?

举个例子:

我打电话给我的API并返回green,现在我想用ie(绿色Toolbar,绿色TextView等)加载我的应用程序,这可能吗?

我的第一个想法是:

colors.xml被调用上创建一个项目,demo然后为它指定一个默认颜色,然后demo在我想要的任何地方使用这个颜色(Button,TextView等等)然后我认为可以用API的结果以编程方式更改这个值,所以我不需要创建一个SharedPreferences或类似的东西,以避免更多的代码.

正如@YS对我说的那样

不幸的是,你必须手动设置文本或视图的颜色...... :(

我想如果有其他方法可以做到这一点,因为我不知道Activities我的项目将包含多少,所以如果有其他方法可以做到这一点我很高兴听到其他猜测.

编辑

我正在尝试@Jared Rummler的答案,也许我做错了什么......我创造了一个简单的Json,我把我的资产我解析了Json,我把它放在一个GlobalConstant然后我做了一个"简单的应用程序".

首先,我有一个TextView和a Button包含"your_special_color",并返回它我把GlobalConstant int如下:

case "your_special_color":                
            return GlobalConstant.color; 
Run Code Online (Sandbox Code Playgroud)

然后我尝试的是我的第一个Activity有1 TextView和1,Button正如我之前所说,他们有颜色"your_special_color",我不想改变它,但我有一个Intent在我Button打开另一个Activity包含相同,但与GlobalConstant.color而且它没有改变.

我试过这样做(我的第二个活动):

public class Main2Activity extends AppCompatActivity {
private Res …
Run Code Online (Sandbox Code Playgroud)

android aapt android-resources

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

Android - 加速下降(粉碎)


视频解释为那些不理解的人


这个答案没有正确答案请尝试使用另一种解决方案(100 Bounty已过期)

同样的问题但更好地解释

这个问题被认为是正确的,但它完全没有,我用我的旧设备ZTE尝试了它并且大部分时间工作,但现在我有三星Galazy A5 2016并且它不起作用,在LG G3上都没有.

事情正在尝试使用Accelerometer,有些Sensors我必须能够检测到我在视频上制作的那两个动画中的任何一个.

有两个动作:

  • 粉碎它(以一点速度)
  • 自由落体

我让你来决定,并说服了我什么是更好的选择和EASIER一个做的,具有更好的我的意思是,在大多数设备的工作原理.

android accelerator sensor

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

Broadcastreceiver用于检测网络是否已连接

我正试图获得用户连接到网络的那一刻,然后我认为这BroadcastReceiver是一个很好的方法......我想做的事情是,当用户连接到网络时,知道该网络是否已连接到Internet .

主要的是知道WiFi是否需要Browse Log in示例:Handling Network Sign-On文档

到目前为止我尝试过什么?

我把我BroadcastReceiver变成了这个

if (intent.getAction().equals(ConnectivityManager.CONNECTIVITY_ACTION)) {
NetworkInfo networkInfo = intent.getParcelableExtra(ConnectivityManager.EXTRA_NETWORK_INFO);
if (networkInfo != null && networkInfo.getDetailedState() == NetworkInfo.DetailedState.CONNECTED) {
    Log.d("Network", "Internet YAY");
} else if (networkInfo != null && networkInfo.getDetailedState() == NetworkInfo.DetailedState.DISCONNECTED) {
    if (isNetworkOnline()) {
        Log.d(TAG, String.valueOf(tikis));
        NetTask TeInternet = new NetTask();
        TeInternet.execute("https://www.google.com");


    }
}
Run Code Online (Sandbox Code Playgroud)

问题是,当我尝试连接到WiFi没有Internet Connection输入的是这样的:

D/Network? Internet YAY
D/Network? Internet YAY
D/Network? Internet YAY
D/RequiresLoginBroadcast? 1 //this occurs sometimes …
Run Code Online (Sandbox Code Playgroud)

android

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

Compose UI 测试 - 如何断言文本颜色?

我正在尝试Text在我的组件上测试我可以用不同的颜色打印它,所以在我的测试中我正在验证它是否获得了预期的颜色。我正在寻找一种返回颜色的方法,但没有找到。

从现在开始,我断言文本是正确的,可见性是正确的,但是当试图找到获取颜色的方法时,我变得太深了,我正在寻找一个更简单的解决方案。

composeTestRule.onNode(hasTestTag("testTagForButton"), true)
            .assertExists()
            .assertTextEquals("Testing")
Run Code Online (Sandbox Code Playgroud)

我已经检查过我可以做一些类似.fetchSemanticsNode().layoutInfo.getModifierInfo()进入的事情Modifier,也许从那里我可以得到颜色,但它可能太多了。我还发现.captureToImage()也许我可以在上面得到颜色,但由于我必须放置像素,所以我认为这不是方法。

有什么简单的方法可以得到它吗?

android kotlin android-jetpack android-jetpack-compose android-jetpack-compose-testing

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

FragmentTabHost - 没有标签为null的标签

前几天,我实现TabHostFramgentFragment一个NavigationDrawer,和我面临的是以下错误的问题:

java.lang.IllegalStateException:没有标记null的标签

事情是所有的工作完美,因为我的第一个项目列表NavigationDrawer是我的TabHostFragment,所以它工作完美,但问题是当我进入第二个项目的例子然后我想回到第一个项目,每次我试试它崩溃了.

我在寻找随处可见,在这里SO,code.google.com等...我仍然没有得到正确的答案.

tab_host_test_2.xml看起来像:

  <android.support.v4.app.FragmentTabHost xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@android:id/tabhost"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

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

        <TabWidget
            android:id="@android:id/tabs"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal" />

        <FrameLayout
            android:id="@android:id/tabcontent"
            android:layout_width="0dp"
            android:layout_height="0dp"
            android:layout_weight="0" />

        <FrameLayout
            android:id="@+id/realtabcontent"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_weight="1" />
    </LinearLayout>

</android.support.v4.app.FragmentTabHost>
Run Code Online (Sandbox Code Playgroud)

activity_main.xml在哪里看到我的NavigationDrawer样子:

 <android.support.v4.widget.DrawerLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <!-- Framelayout to display Fragments -->
    <FrameLayout
        android:id="@+id/frame_container"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />


    <!-- Listview to display slider menu …
Run Code Online (Sandbox Code Playgroud)

java android android-layout android-tabhost android-viewpager

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

在Android中实现文件选择器并将所选文件复制到另一个位置

我正在尝试在我的Android项目中实现文件选择器.到目前为止我能做的是:

Intent chooseFile;
Intent intent;
chooseFile = new Intent(Intent.ACTION_GET_CONTENT);
chooseFile.setType("*/*");
intent = Intent.createChooser(chooseFile, "Choose a file");
startActivityForResult(intent, PICKFILE_RESULT_CODE);
Run Code Online (Sandbox Code Playgroud)

然后在我的 onActivityResult()

switch(requestCode){
 case PICKFILE_RESULT_CODE:
   if(resultCode==-1){
      Uri uri = data.getData();
      String filePath = uri.getPath();
      Toast.makeText(getActivity(), filePath,
                        Toast.LENGTH_LONG).show();
    }
 break;
}
Run Code Online (Sandbox Code Playgroud)

这是打开文件选择器,但它不是我想要的.例如,我想选择一个文件(.txt),然后获取它File然后使用它.有了这段代码,我想我会得到完整的路径,但它不会发生; 例如,我得到:/document/5318/.但是通过这条路径我无法获取文件.我创建了一个名为方法PathToFile()返回一个File:

 private File PathToFile(String path) {
    File tempFileToUpload;
    tempFileToUpload = new File(path);
    return tempFileToUpload;
}
Run Code Online (Sandbox Code Playgroud)

我正在试图做的是让用户选择File从任何地方表示DropBox,Drive,SDCard,Mega,等...我没有找到正确方式做到这一点,我试图让Path然后得到一个FilePath …

android android-intent android-file android-implicit-intent android-fileprovider

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

长按检测电源按钮

我一直在阅读Stackoverflow上的一些帖子,我没有找到一个好的解决方案,我想知道是否有可能检测到用户长时间按下电源按钮时试图关闭设备,我想知道你是否可以检测到该事件,并且让或者不显示出现的对话框(重启,关机等...)

我试过这个:

@Override
public boolean dispatchKeyEvent(KeyEvent event) {
        Toast.makeText(MainActivity.this, event.getKeyCode(), Toast.LENGTH_SHORT).show();
    return true;
}
Run Code Online (Sandbox Code Playgroud)

但它没有出现,它也应该作为一项服务工作,我的意思是应用程序可以打开或不打开显示吐司.

编辑

这就是我的方式 onCloseSystemDialog

//home or recent button
public void onCloseSystemDialogs(String reason) {
    if ("globalactions".equals(reason)) {
        Toast.makeText(PowerButtonService.this, "yaps", Toast.LENGTH_SHORT).show();
        Intent i= new Intent(getBaseContext(), Demo.class);
        i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        getApplication().startActivity(i);
    //} else if ("homekey".equals(reason)) {
        //home key pressed
    //} else if ("recentapss".equals(reason)) {
        // recent apps button clicked
    }
}
Run Code Online (Sandbox Code Playgroud)

它工作正常,但只有当设备解锁时,设备被锁定时才会显示任何内容.

此外,我试图弄清楚如何在用户单击powerbutton时删除对话框我试过这个:

getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);
Run Code Online (Sandbox Code Playgroud)

但如果我想再次展示它,我该怎么办呢?

events android

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

使用onClickListener时出错(意图)

好吧,我正在尝试创建一个"login.java"的意图代码是:

 Button btEntrar = (Button) findViewById(R.id.btnSingIn);
    btEntrar.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent i;
            i = new Intent(this, MainActivity.class);
            startActivity(i);


        }
    });
Run Code Online (Sandbox Code Playgroud)

但它说我不能去其他活动这样说:

错误:(24,21)错误:没有为Intent(,Class)构造函数找到合适的构造函数Intent.Intent(String,Uri)不适用(参数不匹配;无法转换为String)构造函数Intent.Intent(Context,Class)不适用(参数不匹配;无法转换为上下文)

和...

错误:任务':app:compileDebugJava'的执行失败.编译失败; 请参阅编译器错误输出以获取详细信

java android android-intent

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

以编程方式连接到蓝牙

我正在尝试以编程方式将我的设备连接到例如我的耳机上...我有KitKat版本并且所有工作Bluetooth都很完美(总是自动连接没有问题)但是因为我已更新到Lolipop它没有.我想知道是否有任何方法可以将我的任何配对设备连接Android phoneBluetooth打开状态.

从现在开始我已经有了这个代码(获取设备名称和设备地址),因为我想它可以连接做类似device.connect(MAC-Address);但不起作用的东西......

    BluetoothAdapter bluetoothAdapter
    = BluetoothAdapter.getDefaultAdapter();
Set < BluetoothDevice > pairedDevices = bluetoothAdapter.getBondedDevices();
if (pairedDevices.size() > 0) {
    for (BluetoothDevice device: pairedDevices) {
        mDeviceName.add(device.getName());
        mDeviceMAC.add(device.getAddress());

    }
}
bluetoothClass.setDeviceName(mDeviceName);
bluetoothClass.setDeviceMac(mDeviceMAC);
Run Code Online (Sandbox Code Playgroud)

在我的MotoG(KitKat)上,如果我转动Bluetooth它,它会自动连接到设备(如果它接近并配对...)但是在我的LG G3上我必须转到配置/蓝牙/配对设备/然后点击设备进行连接. ..我想避免这种情况......应该可以吗?


我想知道是否有可能连接到特定的蓝牙只是添加Device nameDevice MAC...或多或少像Android当我点击我的设备连接它自动连接...我只想得到那个CLICK事件.我知道Android应该自动连接到配对的设备,但是有任何异常都没有...唯一的方法是配对它正在点击...这就是为什么我想知道它是否有办法做到这一点......我已经阅读并测试了kcoppock的答案,但它仍然无法正常工作..

有什么建议吗?

编辑

我想要做的主要是自动连接,Bluetooth但是因为我读过嘿你回答...我想出来了,我知道这是一个Android错误,所以我想要做的是选择paired devices和然后单击我要连接的设备(不做任何操作Intent)并连接它,而不是去Configuration/Bluetooth/....顺便说一下,我已经阅读了任何答案StackOverflow …

android android-bluetooth

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

Android - 在屏幕上移动ImageView(像拖动一样)

我正在尝试创建一个可以ImageView在您的设备上移动的应用程序,例如拖动,当我放置75%ImageView的屏幕外显示Toast例如.我一直在阅读有关MotionEventonTouchListener我已经遵循了这一问题,但它并没有说服我.

编辑

我目前的代码是:

public class MainActivity extends AppCompatActivity implements View.OnTouchListener {

    int windowwidth;
    int windowheight;
    private ImageView mImageView;
    private ViewGroup mRrootLayout;
    private int _xDelta;
    private int _yDelta;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        DisplayMetrics displaymetrics = new DisplayMetrics();
        this.getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
        windowwidth = displaymetrics.widthPixels;
        windowheight = displaymetrics.heightPixels;
        mRrootLayout = (ViewGroup) findViewById(R.id.root);
        mImageView = (ImageView) mRrootLayout.findViewById(R.id.im_move_zoom_rotate);

        RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(150, 150);
        mImageView.setLayoutParams(layoutParams);
        mImageView.setOnTouchListener(this);
    }
    public boolean onTouch(View view, …
Run Code Online (Sandbox Code Playgroud)

android android-custom-view android-layout android-view

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