小编Roh*_*wal的帖子

AndroidViewModel - 进行重复调用不会返回observe函数中的数据

我的问题与ViewModel有关,第二次返回null,其中observe如果我重复调用服务器,我在函数中没有得到回调.以下是我使用的代码 -

@Singleton
public class NetworkInformationViewModel extends AndroidViewModel {
  private LiveData<Resource<NetworkInformation>> networkInfoObservable;
  private final APIClient apiClient;

  @Inject
  NetworkInformationViewModel(@NonNull APIClient apiClient, @NonNull Application application) {
    super(application);
    this.apiClient = apiClient;
    getNetworkInformation();
  }

  public LiveData<Resource<NetworkInformation>> getNetworkInfoObservable() {
    return networkInfoObservable;
  }

  // making API calls and adding it to Observable
  public void getNetworkInformation() {
    networkInfoObservable = apiClient.getNetworkInformation();
  }
}
Run Code Online (Sandbox Code Playgroud)

在Activity中,ViewModel定义如下 -

final NetworkInformationViewModel networkInformationViewModel =
      ViewModelProviders.of(this, viewModelFactory).get(NetworkInformationViewModel.class);
    observeViewModel(networkInformationViewModel);
Run Code Online (Sandbox Code Playgroud)

observeViewModel函数用于添加observable ViewModel.

public void observeViewModel(final NetworkInformationViewModel networkInformationViewModel) …
Run Code Online (Sandbox Code Playgroud)

android android-livedata android-architecture-lifecycle android-viewmodel android-architecture-components

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

在通过文本到语音说话然后恢复时暂停手机铃声

我正在制作一个使用TTS说出来电者姓名的来电者.我想在TTS讲话时暂停铃声然后恢复铃声.根据我的研究,我们可以使用AudioFocus(希望如此).无论如何,我使用以下代码

更新

我现在正在使用此代码.

public void speak(final String talk) throws InterruptedException {
     final AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
     int musicVolume= audioManager.getStreamVolume(AudioManager.STREAM_MUSIC);
     audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, musicVolume, 0);
     audioManager.setRingerMode(AudioManager.RINGER_MODE_SILENT);

    int result = tts.setOnUtteranceProgressListener(new UtteranceProgressListener() {

        @Override
        public void onStart(String utteranceId) {
            // TODO Auto-generated method stub

        }

        @Override
        public void onError(String utteranceId) {
            // TODO Auto-generated method stub

        }

        @Override
        public void onDone(String utteranceId) {
            // TODO Auto-generated method stub
            audioManager.setRingerMode(AudioManager.RINGER_MODE_NORMAL);
            System.out.println("done");
        }
    });
    HashMap<String, String> params = new HashMap<String, String>();
    params.put(TextToSpeech.Engine.KEY_PARAM_UTTERANCE_ID,"stringId");
    tts.speak(talk, …
Run Code Online (Sandbox Code Playgroud)

android text-to-speech ringtone android-audiomanager

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

由 EditText 组成的自定义 ListAdapter 失去焦点,调用两次

我正在制作一个电子商务应用程序,其购物车列表有一个自定义ListView,其中包含EditText. 代表EditText物品的数量。我用来OnFocusChangeListener检测客户何时完成更改商品数量,然后更新服务器上的购物车。一切工作正常,只是onFocusChange被调用了两次,即我得到了false两次。

viewHolder.etProductQuantity.setOnFocusChangeListener( new View.OnFocusChangeListener() {

    @Override
    public void onFocusChange(View view, boolean hasFocus) {

        if(!hasFocus){

            // Updating the ProductList class's object to set the new quantity
            // Updating product quantity on server
            Log.d("Product Quantity", viewHolder.etProductQuantity.getText().toString() + b);
        }
    }
});
Run Code Online (Sandbox Code Playgroud)

因此,编码被执行两次,这就产生了问题。

android listener android-listview android-edittext

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

适用于所有活动的Android父级导航抽屉

我正在创建一个应用程序,它需要所有活动的相同导航抽屉.为此,我创建了一个扩展Activity(需要子类)的类,并在那里编写了Navigation Drawer的代码.

public class NavigationDrawerClass extends Activity {
    String [] names = new String[]{"Rohan", "Muthu","Rishi"};
    private ActionBarDrawerToggle mDrawerToggle;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.navigation_drawer_class);
        DrawerLayout drawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);

        ListView list = (ListView) findViewById(R.id.left_drawer);
        list.setAdapter(new ArrayAdapter<String>(NavigationDrawerClass.this, android.R.layout.simple_list_item_1, names));
        // enable ActionBar app icon to behave as action to toggle nav drawer
        getActionBar().setDisplayHomeAsUpEnabled(true);
        getActionBar().setHomeButtonEnabled(true);

        mDrawerToggle = new ActionBarDrawerToggle(
                NavigationDrawerClass.this,                  /* host Activity */
                drawerLayout,         /* DrawerLayout object */
                R.drawable.ic_drawer,  /* nav drawer image to replace 'Up' caret …
Run Code Online (Sandbox Code Playgroud)

inheritance android navigation-drawer android-navigation

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

单击按钮上的自定义菜单作为下拉菜单

我正在尝试实现flipkart 应用程序的操作栏功能。Flipkart 应用截图.

为此,我已成功创建了一个自定义操作栏,但我在将菜单显示为溢出图标单击下拉菜单时遇到了问题。

如果我尝试在按钮上单击 Android 选项菜单,然后在我的屏幕底部中心获得没有图标的菜单 (4.2.2)。使用自定义对话框或警报对话框会淡化背景,它们也会出现在屏幕中央。

我应该怎么做才能获得与上图类似的功能?

android optionmenu android-alertdialog android-dialog android-styles

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

"隐藏敏感信息"处于活动状态时显示通知数据

在Android中,如果用户具有锁定屏幕并且已选择隐藏敏感信息选项,则在屏幕被锁定时,通知的描述显示为"内容隐藏".我知道这就是该功能的设计方式,但在这种情况下,我的应用程序通知是否也可以显示为正常通知?

我的应用程序完全基于通知,所以我想给用户一个更改,如果他愿意,总是看到通知.我试图寻找一种始终显示通知文本但无法找到任何内容的方法.

notifications android android-notifications android-notification-bar

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

按姓名搜索联系人

我正在尝试创建一个自定义联系人应用程序,它只显示那些具有Contact Number 的联系人。首先,有没有什么自动化的方法来做到这一点?假设不是,那么我正在尝试按名称搜索联系人,例如Rohan

这是代码:-

Cursor photoCursor = getContentResolver().query(
            android.provider.ContactsContract.Contacts.CONTENT_URI,
            new String[] { ContactsContract.Contacts.PHOTO_ID,
                    ContactsContract.Contacts.DISPLAY_NAME },
            ContactsContract.Contacts.DISPLAY_NAME + " = ?",
            new String[]{"Rohan"}, null);
    photoCursor.moveToFirst();
    while (photoCursor.moveToNext()) {
        Log.d("Photo Thumbnail", "" + photoCursor.getString(1));
    }
Run Code Online (Sandbox Code Playgroud)

虽然联系人存在,但我没有收到任何日志,如果我删除Selection & Selection Args,我会在日志中看到Rohan。我究竟做错了什么?

android android-contacts android-cursor android-search

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

如何知道哪个JCheckBox发送了ItemEvent

我的Swing项目中有很多复选框.对于每个复选框,选择/取消选择要执行的特定查询.我知道获取复选框来源的一种方法是

public void itemStateChanged(ItemEvent e)  {
if(e.getSource=="checkbox object")
{ 
some code goes here; 
}
}
Run Code Online (Sandbox Code Playgroud)

如果我有少量的复选框,这个解决方案是最好的,但如果我有很多复选框,那么我必须编写冗长的代码.有没有办法在单个命令中找到导致事件的复选框的对象?

java checkbox events swing

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

意想不到的顶级例外:在Android Studio中

我知道这里已被问过太多次了,但我还是无法解决这个问题.我已经尝试过以前的问题提供的解决方案,但他们没有以某种方式工作.

这是我的gradle依赖 -

compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.google.code.gson:gson:2.3.1'
compile 'com.android.support:appcompat-v7:23.1.0'
compile 'com.android.support:support-v4:23.1.0'
compile 'com.google.android.gms:play-services:8.1.0'
compile 'com.facebook.android:facebook-android-sdk:3.22.0'
compile project(':IndicatorLib')
compile 'com.makeramen:roundedimageview:1.5.0'
compile 'com.github.clans:fab:1.5.0'
// GMS in the library was causing merging error, we need to exclude the duplicate dependencies
compile ('io.nlopez.smartlocation:library:3.2.0') { exclude group: 'com.google.android.gms'}
Run Code Online (Sandbox Code Playgroud)

这是我的gradle依赖项输出 -

_releaseApk - ## Internal use, do not manually configure ##
+--- com.google.code.gson:gson:2.3.1
+--- com.android.support:appcompat-v7:23.1.0
|    \--- com.android.support:support-v4:23.1.0
|         \--- com.android.support:support-annotations:23.1.0
+--- com.google.android.gms:play-services:8.1.0
|    +--- com.google.android.gms:play-services-ads:8.1.0
|    |    +--- com.google.android.gms:play-services-basement:8.1.0
|    |    | …
Run Code Online (Sandbox Code Playgroud)

android android-gradle-plugin

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

WebView 未加载某些页面

无法在 WebView 中加载以下网页

https://6awlanow.com/about/faqs

到目前为止尝试过 -

    webView.getSettings().setJavaScriptEnabled(true);
    webView.getSettings().setLoadWithOverviewMode(true);
    webView.getSettings().setUseWideViewPort(true);
    webView.getSettings().setPluginState(WebSettings.PluginState.ON);
    webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
    webView.getSettings().setAllowFileAccess(true);
    webView.getSettings().setDomStorageEnabled(true);
    webView.getSettings().setUserAgentString("Android WebView");
    webView.setWebViewClient(new WebViewClient() {

      @Override
      public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
        view.loadUrl(request.getUrl().getPath());
        //if (progressDialog != null && progressDialog.isShowing()) {
        //  progressDialog.dismiss();
        //}
        return true;
      }

      //If you will not use this method url links are opeen in new brower not in webview
      @Override
      public boolean shouldOverrideUrlLoading(WebView view, String url) {
        view.loadUrl(url);
        return true;
      }

      //Show loader on url load
      @Override
      public void onLoadResource(WebView view, String …
Run Code Online (Sandbox Code Playgroud)

android webview android-webview

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

在按钮单击时显示AutoCompleteTextView的下拉菜单

我有一个AutoCompleteTextView根据输入的文本返回地点列表.该AutoCompleteTextView工作正常,返回所需的数据.但是,我面临一个小问题.考虑一下我写 loAutoCompleteTextView,然后按一个按钮来搜索匹配的地方.搜索工作正常,并加载AutoCompleteTextView建议位置的下拉列表.但我只能看到下拉,如果我输入第三个字,即lon或我编辑单词为l.我希望下拉列表更新后立即显示下拉列表.

android autocompletetextview

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