我的问题与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
我正在制作一个使用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) 我正在制作一个电子商务应用程序,其购物车列表有一个自定义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)
因此,编码被执行两次,这就产生了问题。
我正在创建一个应用程序,它需要所有活动的相同导航抽屉.为此,我创建了一个扩展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) 我正在尝试实现flipkart 应用程序的操作栏功能。
.
为此,我已成功创建了一个自定义操作栏,但我在将菜单显示为溢出图标单击下拉菜单时遇到了问题。
如果我尝试在按钮上单击 Android 选项菜单,然后在我的屏幕底部中心获得没有图标的菜单 (4.2.2)。使用自定义对话框或警报对话框会淡化背景,它们也会出现在屏幕中央。
我应该怎么做才能获得与上图类似的功能?
android optionmenu android-alertdialog android-dialog android-styles
在Android中,如果用户具有锁定屏幕并且已选择隐藏敏感信息选项,则在屏幕被锁定时,通知的描述显示为"内容隐藏".我知道这就是该功能的设计方式,但在这种情况下,我的应用程序通知是否也可以显示为正常通知?
我的应用程序完全基于通知,所以我想给用户一个更改,如果他愿意,总是看到通知.我试图寻找一种始终显示通知文本但无法找到任何内容的方法.
notifications android android-notifications android-notification-bar
我正在尝试创建一个自定义联系人应用程序,它只显示那些具有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。我究竟做错了什么?
我的Swing项目中有很多复选框.对于每个复选框,选择/取消选择要执行的特定查询.我知道获取复选框来源的一种方法是
public void itemStateChanged(ItemEvent e) {
if(e.getSource=="checkbox object")
{
some code goes here;
}
}
Run Code Online (Sandbox Code Playgroud)
如果我有少量的复选框,这个解决方案是最好的,但如果我有很多复选框,那么我必须编写冗长的代码.有没有办法在单个命令中找到导致事件的复选框的对象?
我知道这里已被问过太多次了,但我还是无法解决这个问题.我已经尝试过以前的问题提供的解决方案,但他们没有以某种方式工作.
这是我的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) 无法在 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) 我有一个AutoCompleteTextView根据输入的文本返回地点列表.该AutoCompleteTextView工作正常,返回所需的数据.但是,我面临一个小问题.考虑一下我写 lo的AutoCompleteTextView,然后按一个按钮来搜索匹配的地方.搜索工作正常,并加载AutoCompleteTextView建议位置的下拉列表.但我只能看到下拉,如果我输入第三个字,即lon或我编辑单词为l.我希望下拉列表更新后立即显示下拉列表.
android ×10
android-architecture-components ×1
android-architecture-lifecycle ×1
checkbox ×1
events ×1
inheritance ×1
java ×1
listener ×1
optionmenu ×1
ringtone ×1
swing ×1
webview ×1