我有两个TextInputLayout元素并排:名字和姓氏.在他们下面我有另一个全宽度TextInputLayout元素:电子邮件.
我正在尝试覆盖键盘上的下一个按钮,这样当在firstname输入中单击Next时,它应该转到lastname输入并从那里转到电子邮件等.
现在的问题是,当我在键盘上按下Next时,它不会转到lastname字段,而是转到它下面的电子邮件.
这是我的xml文件的一部分,我有这三个输入:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_gravity="center_horizontal"
android:baselineAligned="false">
<android.support.design.widget.TextInputLayout
android:id="@+id/input_layout_firstname"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1">
<EditText
android:id="@+id/register_input_firstname"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/hint_firstname"
android:inputType="textCapSentences"
android:nextFocusForward="@+id/register_input_lastname"
android:nextFocusRight="@+id/register_input_lastname" />
</android.support.design.widget.TextInputLayout>
<android.support.design.widget.TextInputLayout
android:id="@+id/input_layout_lastname"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1">
<EditText
android:id="@+id/register_input_lastname"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/hint_lastname"
android:inputType="textCapSentences"
android:nextFocusDown="@+id/register_input_email" />
</android.support.design.widget.TextInputLayout>
</LinearLayout>
<android.support.design.widget.TextInputLayout
android:id="@+id/input_layout_email"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<EditText
android:id="@+id/register_input_email"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/hint_email"
android:inputType="textEmailAddress" />
</android.support.design.widget.TextInputLayout>
Run Code Online (Sandbox Code Playgroud)
我也试过瞄准TextInputLayout而不是EditText但没有效果.
下一个焦点甚至是可能的,TextInputLayout或者它是一个错误还是我只是做了一些非常错误的事情?
几个小时以来,我一直试图弄清楚为什么我的应用程序数据库会死锁。
我有一个应用程序,它从活动中读取数据库并从服务中写入数据库。很直接。
我将我的数据库连接设置为一个实例:
public static synchronized MuseoDatabase getInstance(Context context){
if(sInstance == null){
sInstance = new MuseoDatabase(context);
}
return sInstance;
}
Run Code Online (Sandbox Code Playgroud)
在我的服务中,我有一个Runnable定期更新数据库的事务。有时甚至有大块(300 多个条目)的数据。
在服务中,我打开了用于写入的实例
final SQLiteDatabase db = MuseoDatabase.getInstance(getApplicationContext()).getWritableDatabase();
Run Code Online (Sandbox Code Playgroud)
该服务工作正常。它很好地更新了数据库,那里一切都很好。
现在我有一个接受 RFID 和数字代码输入的活动,它们都通过一种validateCode()方法进行验证。
为此,我以读取模式打开数据库实例
final SQLiteDatabase db = MuseoDatabase.getInstance(getApplicationContext()).getReadableDatabase();
Run Code Online (Sandbox Code Playgroud)
正如我上面所说,RFID uuid 和数字代码都通过相同的方法进行验证,因为该值保存在同一个 SQLite 表中。
当我验证代码时,一切正常。它正确地检查数据库中的代码以及它是否有效等。但是现在如果我要读取 RFID:死锁和错误:
The connection pool for database has been unable to grant a connection to thread 602 (Binder_2) with flags 0x1
Run Code Online (Sandbox Code Playgroud)
它甚至会导致应用程序的 RFID 阅读器出现故障(不再检测到 rfid 卡)。数字代码没有问题,但是当使用 rfid 时,尽管他们都起诉了相同的方法,但它只是失败了。 …
我有一个表单,其中包含所需的字段以及可选的字段.我正在使用Semantic UI的表单验证行为来验证字段.
但是,我想要实现的是表单验证行为仅在可选字段中包含值时验证它们.
示例可选字段:
<div class="field">
<label>First name</label>
<input type="text" name="first_name" placeholder="First name">
</div>
Run Code Online (Sandbox Code Playgroud)
必填字段示例:
<div class="required field">
<label>E-mail address</label>
<input type="text" name="email" placeholder="E-mail address">
</div>
Run Code Online (Sandbox Code Playgroud)
我通过省略empty验证规则尝试了但是没有用.
是否内置了表单验证行为可以帮助我实现这一点,还是需要为可选字段编写自定义验证?