Я хотел бы показать два представления в контексте службы. Один из них - TextView, а другой - класс, который я разработал, расширяя базовый класс класса.
prompt.xml:service show view getLayoutInflater
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/mtPrompt"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@android:color/background_dark"
android:text="@string/demoString"
android:textColor="@android:color/white"
android:minLines="2"
android:textSize="25dp" >
</TextView>
и Input.xml:
<com.xxx.ime.sssView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/inputView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/translucent_gray"
android:cacheColorHint="@null" >
</com.xxx.ime.sssView>
в моей реализации onInitializeInterface() Я надуть их следующим образом:
sssView sv =
(sssView) getLayoutInflater().inflate(R.layout.input, null);
TextView tv =
(TextView) getLayoutInflater().inflate(R.layout.prompt, null);
я вижу sssView, но а не TextView. Любые идеи почему?
вы устанавливаете как в комплектеContentView? – Sajmon
Нет, в качестве примера, с которого я работал (SoftKeyboard), не вызывал setContentView(). Я должен был бы вывести активность, чтобы сделать этот звонок, и это звучит не так. –
Продолжая изучать это после перерыва ...
Поскольку один вид виден, я решил использовать ViewGroup (LinearLayout), чтобы удерживать оба моих представления. В этом случае я получаю исключение IllegalStateException, введенное в InputMethodService.setInputView(), функцию, которую я не переопределял. В сообщении об ошибке говорится: «У указанного ребенка уже есть родительский элемент». Я полагаю, что это означает, что setInputView пытается перекрыть дочерние представления в моем LinearLayout. Может (и должен) попытаться предотвратить это, переопределив setInputView. Наверное, я попытаюсь посмотреть, что произойдет. –