小编Bam*_*amx的帖子

androidx:SwitchPreference VS SwitchPreferenceCompat

Androidx Preference 库提供了两个用于在“设置”屏幕中实现 SwitchPreference 的类:

  1. 切换偏好设置
  2. 切换偏好兼容性

在撰写此问题时,AOSP 源代码中的两种实现(AOSP Androidx SwitchPreferenceAOSP Androidx SwitchPreferenceCompat)看起来几乎相同,除了一些syleables等之外......

所以我的问题是,考虑到与其实现的未来可能发生的变化的兼容性,我们必须使用哪一个

android switchpreference android-jetpack

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

将 @SuppressLint("RestrictedApi") 与 AndroidX 库一起使用是否安全?

我现在想知道使用 @SuppressLint("RestrictedApi") 注释是否安全。我很确定答案是否定的,所以我也想问为什么。

我猜开发团队想restricted code向 API 用户隐藏这些内容。可能是由于未来的变化或者因为代码旨在用作内部功能

示例代码androidx.preference:preference:1.1.1

public abstract class CustomAdapterPreferenceFragment extends PreferenceFragmentCompat {

    @Override
    protected PreferenceGroupAdapter onCreateAdapter(PreferenceScreen preferenceScreen) {
        // this annotation removes warning that says PreferenceGroupAdapter can only be called from package names that start with androidx.preference        
        @SuppressLint("RestrictedApi")
        final PreferenceGroupAdapter adapter = new PreferenceGroupAdapter(preferenceScreen) {
            @Override
            public void onBindViewHolder(PreferenceViewHolder holder, int position) {
                super.onBindViewHolder(holder, position);
            }
        };
        return adapter;
    }
Run Code Online (Sandbox Code Playgroud)

链接到限制本示例中代码使用的注释:AOSP AndroidX

android annotations androidx

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

ActionBarSherlock - SearchView为空?

我在SherlockListActivity中将Action功能添加到Action Bar但是,当我尝试实例化SearchView时,它始终为null:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getSupportMenuInflater().inflate(R.menu.activity_main_menu, menu);
    SearchView searchView = (SearchView) menu.findItem(R.id.activity_main_menu_search).getActionView();
    searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener(){
            public boolean onQueryTextSubmit(String p1){
                List<Application> auxList = Search.search(mContext, p1);
                AdapterApp aux = new AdapterApp(mContext, auxList);
                setListAdapter(aux);
                getListView().setOnItemClickListener(aux.getItemClickListener());
                return true;
            }

            public boolean onQueryTextChange(String p1){
                return false;
            }           
    });
    return super.onCreateOptionsMenu(menu);
}
Run Code Online (Sandbox Code Playgroud)

activity_main_menu.xml:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:id="@+id/activity_main_menu_search"
        android:title="@string/search"
        android:icon="@android:drawable/ic_menu_search"
        android:showAsAction="ifRoom|collapseActionView"
        android:actionViewClass="com.actionbarsherlock.widget.SearchView " />

    <item android:id="@+id/activity_main_menu_purchase"
        android:title="@string/purchase"
        android:icon="@drawable/ic_launcher_market_holo"
        android:showAsAction="ifRoom|collapseActionView" />

</menu>
Run Code Online (Sandbox Code Playgroud)

另外我要说我已正确导入所需的类:

import com.actionbarsherlock.app.ActionBar;
import com.actionbarsherlock.app.ActionBar.OnNavigationListener;
import com.actionbarsherlock.app.SherlockListActivity;
import com.actionbarsherlock.view.Menu;
import com.actionbarsherlock.view.MenuItem; …
Run Code Online (Sandbox Code Playgroud)

android classnotfoundexception actionbarsherlock searchview

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

更新AOSP内置系统应用程序

假设我们已经下载、构建并刷新了 AOSP 源代码。现在对系统应用程序进行了更改(例如更改了packages/apps/Nfc 包中的常量)。

下一步是构建它,有两种方法可以实现:

cd packages/apps/Nfc; mm
Run Code Online (Sandbox Code Playgroud)

或者

mmm Nfc
Run Code Online (Sandbox Code Playgroud)

这将创建 out/target/product//system/app/NfcNci/NfcNci.apk 文件

更新系统应用程序的正确方法是什么?

我尝试使用adb install NfcNci.apk但没有成功:

~/android/aosp-7.1.2-3.10-v2/out/target/product/kugo/system/app/NfcNci$ adb install NfcNci.apk
Failed to install NfcNci.apk: Failure [INSTALL_FAILED_ALREADY_EXISTS: Attempt to re-install com.android.nfcnci without first uninstalling.]
~/android/aosp-7.1.2-3.10-v2/out/target/product/kugo/system/app/NfcNci$ adb install -r NfcNci.apk
Failed to install NfcNci.apk: Failure [INSTALL_FAILED_INVALID_APK: Package couldn't be installed in /data/app/com.android.nfcnci-1: Package /data/app/com.android.nfcnci-1/base.apk code is missing]
Run Code Online (Sandbox Code Playgroud)

android build android-source

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

调色板库:如何为Palette Swatch Color添加透明度?

如何为调色板的样本添加透明度值?就像我将颜色(swatch.getRGB())添加到线性布局一样,它显示纯色.而且我不想使用alpha,因为它会使布局中的其他项目也变得透明.

我的代码片段:

Palette palette = Palette.from(myBitmap).generate();
Palette.Swatch swatch1 = palette.getDarkVibrantSwatch();
int color = swatch1.getRgb();
thatLayout.setBackgroundColor(color)
Run Code Online (Sandbox Code Playgroud)

android android-palette android-graphics

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

为什么TextView的文本没有改变?

首先我要说的是,我已经花了两周时间对此进行研究,但没有找到答案......

我有一个TextView,所以我想要做的是用任何硬件按键的键码改变它的文本(是的,我知道一些按键不能使用)...问题是文本doest想要改变..有人请帮我解决这个问题.

非常感谢!!!

码:

import android.app.Activity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.view.View.OnKeyListener;
import android.widget.TextView;



public class keycodelistener extends Activity {

    private TextView txtcode;

    public void onCreate(Bundle savedInstanceState) {   
        super.onCreate(savedInstanceState);     
        setContentView(R.layout.keycodedialog);

        txtcode = (TextView)findViewById(R.id.keypresstext);

    }

    public boolean onKeyDown(View v, int keyCode, KeyEvent event) {
        txtcode.setText(String.valueOf(keyCode));
        return super.onKeyDown(keyCode, event);
    }
}
Run Code Online (Sandbox Code Playgroud)

最后,感谢@CFlex !!! 最后三行必须是:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
     //Log.e("","yeeeahhhh");
     txtcode.setText(String.valueOf(keyCode));
     return true;

}
Run Code Online (Sandbox Code Playgroud)

android onkeydown

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