我有两个文本字段和一个Button.我想禁用Button,除非两个EditText-Fields都不为空.我在stackoverflow上尝试了很多解决方案,但它们不起作用.这是我的代码:
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class RegisterActivity extends Activity {
private EditText editText1;
private EditText editText2;
//TextWatcher
private TextWatcher textWatcher = new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i2, int i3)
{
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i2, int i3) {
checkFieldsForEmptyValues();
}
@Override
public void afterTextChanged(Editable editable) {
}
};
@Override
protected void onCreate(Bundle savedInstanceState) { …Run Code Online (Sandbox Code Playgroud) 我想创建一个照片/视频捕获应用程序.
我创建了一个CaptureView扩展SurfaceView并放在主窗体中的类.
主窗体的活动具有onCreateOptionsMenu()创建菜单的方法.菜单工作正常,但后来我尝试实现一个方法onKeyDown:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(event.getAction() == KeyEvent.ACTION_DOWN) {
switch(keyCode) {
case KeyEvent.KEYCODE_CAMERA:
videoPreview.TakePicture();
return true;
}
}
return super.onKeyDown(keyCode, event);
}
Run Code Online (Sandbox Code Playgroud)
该菜单不再出现,并且该方法不会捕获onKeyDown事件.
有谁知道这个问题可能是什么原因?
我的Android应用程序有问题.我需要一个应用程序,每10分钟将后台GPS位置发送到服务器(这里我有WCF服务工作).应用程序即使关闭也需要发送数据.所以我创建了一个服务(用于测试目的),它在服务器上发送给我时间.但当我插入我的代码以获取我的服务中的GPS位置时,一切都失败了(意外停止).
我已经知道你需要放一些接收器或其他东西,但到目前为止还没有任何工作.如果有人能帮助我,我会很高兴.
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.biromatik.GPS"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="4" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<activity
android:label="@string/app_name"
android:name=".ETMGPSServiceActivity" >
<intent-filter >
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:name=".MyApplication" >
<service
android:enabled="true"
android:name=".MonitorService" >
</service>
<receiver
android:enabled="true"
android:name=".LocationReceiver" >
<intent-filter >
<action android:name="com.biromatik.intent.action.LOCATION" />
</intent-filter>
</receiver>
</application>
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.SEND_SMS"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
</manifest>
Run Code Online (Sandbox Code Playgroud) 我知道如何在textview中为文本加下划线.但是如何用不同颜色强调文字?下划线可以通过以下方式完成:
TextView t = (TextView) findViewById(R.id.textview);
t.setPaintFlags(t.getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG);
t.setText("Underline Text");
Run Code Online (Sandbox Code Playgroud)
假设我的textcolor是黑色的,我想用蓝色加下划线,怎么做?提前致谢.
我有一个ListView,其中包含已安装的应用程序列表,对于每个应用程序,我需要知道是否启用了通知.目前我正在使用下面的代码来了解是否启用了通知:
appOpsClass = Class.forName(AppOpsManager.class.getName());
Method checkOpNoThrowMethod = appOpsClass.getMethod(CHECK_OP_NO_THROW, Integer.TYPE, Integer.TYPE, String.class);
Field opPostNotificationValue = appOpsClass.getDeclaredField(OP_POST_NOTIFICATION);
int value = (int)opPostNotificationValue.get(Integer.class);
return ((int)checkOpNoThrowMethod.invoke(mAppOps,value, appUID, appPackage) == AppOpsManager.MODE_ALLOWED);
Run Code Online (Sandbox Code Playgroud)
我得到以下异常:
引起:java.lang.SecurityException:uid 10062没有android.permission.UPDATE_APP_OPS_STATS.W/System.err:在android.os.Parcel.readException(Parcel.java:1683)W/System.err:在android.os.Parcel.readException(Parcel.java:1636)W/System.err:at com .android.internal.app.IAppOpsService $存根$ Proxy.checkOperation(IAppOpsService.java:343)
我已经包括在内了
<uses-permission android:name="android.permission.UPDATE_APP_OPS_STATS"/>
Run Code Online (Sandbox Code Playgroud)
我仍然得到同样的错误.使用什么apis我可以得到它是否被阻止的值
我有一个ViewPager + FragmentPageAdapter的问题.
场景: 我在片段A中有一个活动.片段A有一个带有片段B1和片段B2的ViewPager.B1 e B2是相同的类,但不同的数据作为参数.
问题: 在创建时一切都很好.但是当应用程序进入后台并且进程被android杀死时,尝试恢复最后一个状态,再次启动应用程序,片段B1 e B2在前景中不可见,而片段A是.看起来有点奇怪的是片段B1和B2在片段A的ChildFragmentManager中,并且由于onStart()和onResume()被调用(由Log看到)而被恢复.此外,寻呼机恢复两页,但空或更好,没有任何可见.
如果我很清楚FragmentPagerAdapter是如何工作的,那么它应该负责管理自己的片段以及如何重新创建片段.此外,为了强制执行这一点,如果已经存在具有指定标记的该位置的片段,则FragmentPagerAdapter在从后台返回时不会调用getItem(int position).
...那么为什么我看不到片段B1 e B2,只有传呼机空了?
这是我的示例代码.
FragmentA
@Override
public void onStart() {
super.onStart();
populateViewPager();
}
private void populateViewPager() {
pager.setAdapter(new MyFragmentPageAdapter(getChildFragmentManager()));
indicator.setViewPager(pager);
indicator.notifyDataSetChanged();
}
Run Code Online (Sandbox Code Playgroud)
FragmentPagerAdapter
public class MyFragmentPageAdapter extends FragmentPagerAdapter {
public MyFragmentPageAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
return FragmentB.newInstance(position);
}
@Override
public int getCount() {
return 2;
}
@Override
public CharSequence getPageTitle(int position) {
String title = "";
if (position == 0)
title …Run Code Online (Sandbox Code Playgroud) 我创建了一个简单的Counter类:
public class Counter<T> extends HashMap<T, Long> {
public Counter() {
}
public void increase(T key) {
put(key, getOrDefault(key, 0l) + 1);
}
}
Run Code Online (Sandbox Code Playgroud)
在我的代码中,我调用increase()方法,然后使用Map方法访问数据,例如
Counter<Integer> counter = new Counter<>();
for (Integer i: ... some collection ...)
counter.increase(i);
Run Code Online (Sandbox Code Playgroud)
Intellij counter用警告颜色突出显示(最后一行代码片段)的声明,工具提示消息说明
查询集合的内容,但从未更新.
显然我可以忽略这个警告,但有没有办法说服Intellij我的代码没有任何问题?
我正在使用14.0.2社区版.
我的代码是这样的:
.observeOn(AndroidSchedulers.mainThread())
.subscribeOn(AndroidSchedulers.mainThread())
.subscribe ({
adapter.notifyDataSetChanged()
})
Run Code Online (Sandbox Code Playgroud)
但我收到一个错误:只有创建视图层次结构的原始线程才能触及其视图. 所以我把它改成:
.observeOn(AndroidSchedulers.mainThread())
.subscribeOn(AndroidSchedulers.mainThread())
.subscribe ({
runOnUiThread(Runnable {
adapter.notifyDataSetChanged()
})
}
Run Code Online (Sandbox Code Playgroud)
这很有道理.所以我很困惑.我曾经想过.observeOn(AndroidSchedulers.mainThread())订阅块中的代码在ui线程上运行,但我是如何得到这个错误的?
我将有一个屏幕,其中将有11个图像一个在另一个之下,因此列表每行只有一个图像.现在,我对使用自定义适配器的listview或scrollview包含的linearlayout感到困惑?什么会更好?
android android-listview android-linearlayout android-scrollview
如何处理xml LinearLayout高度的一半fill_parent?
<LinearLayout android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:weightSum="1">
<ImageView android:layout_height="fill_parent"
android:layout_width="0dp"
android:layout_weight="0.5"/>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
我想做一些与身高相似的事情.