У меня есть достаточно простая идея: сделать обычную клавиатуру вместо встроенной клавиатуры, чтобы избежать автозамены, символов, чисел и т. Д., Которые я не хочу использовать в своем приложении. По какой-то причине, когда я вызываю событие typeKey, чтобы «набирать» письмо, событие, вызывающее себя, выдает исключение.Исключения пользовательских клавиатурных бросков
Вот код Java:
public class MainActivity extends Activity {
Vector<String> answer = new Vector<String>(1,1);
int ansLength = 1;
private TextView answerbox;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
answerbox = (TextView) findViewById(R.id.answerbox);
setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
public void typeKey(Object sender)
{
Button pressed = (Button) sender;
answer.add(ansLength, (String) pressed.getText());
ansLength++;
answerbox.setText((CharSequence) answer);
}
}
Вот соответствующий XML:
<Button
android:id="@+id/q"
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:text="Q"
android:onClick="typeKey"/>
<TextView
android:id="@+id/answerbox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_x="43dp"
android:layout_y="40dp"
android:text="Large Text"
android:textAppearance="?android:attr/textAppearanceLarge" />
Цель состоит в том, чтобы иметь возможность вводить и иметь набранный текст отображаться как TextView. Моя мысль сделать это заключалась в том, чтобы добавить к каждому ключу событие typeKey, которое получило бы текст от любой кнопки, называемой событием, добавив ее в векторный «ответ», а затем установив текстовое представление для отображения текста «ответа», ,
Здесь вся трассировка стеки:
08-06 13:04:49.497: E/AndroidRuntime(15224): FATAL EXCEPTION: main
08-06 13:04:49.497: E/AndroidRuntime(15224): java.lang.IllegalStateException: Could not execute method of the activity
08-06 13:04:49.497: E/AndroidRuntime(15224): at android.view.View$1.onClick(View.java:3698)
08-06 13:04:49.497: E/AndroidRuntime(15224): at android.view.View.performClick(View.java:4222)
08-06 13:04:49.497: E/AndroidRuntime(15224): at android.view.View$PerformClick.run(View.java:17273)
08-06 13:04:49.497: E/AndroidRuntime(15224): at android.os.Handler.handleCallback(Handler.java:615)
08-06 13:04:49.497: E/AndroidRuntime(15224): at android.os.Handler.dispatchMessage(Handler.java:92)
08-06 13:04:49.497: E/AndroidRuntime(15224): at android.os.Looper.loop(Looper.java:137)
08-06 13:04:49.497: E/AndroidRuntime(15224): at android.app.ActivityThread.main(ActivityThread.java:4895)
08-06 13:04:49.497: E/AndroidRuntime(15224): at java.lang.reflect.Method.invokeNative(Native Method)
08-06 13:04:49.497: E/AndroidRuntime(15224): at java.lang.reflect.Method.invoke(Method.java:511)
08-06 13:04:49.497: E/AndroidRuntime(15224): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:994)
08-06 13:04:49.497: E/AndroidRuntime(15224): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:761)
08-06 13:04:49.497: E/AndroidRuntime(15224): at dalvik.system.NativeStart.main(Native Method)
08-06 13:04:49.497: E/AndroidRuntime(15224): Caused by: java.lang.reflect.InvocationTargetException
08-06 13:04:49.497: E/AndroidRuntime(15224): at java.lang.reflect.Method.invokeNative(Native Method)
08-06 13:04:49.497: E/AndroidRuntime(15224): at java.lang.reflect.Method.invoke(Method.java:511)
08-06 13:04:49.497: E/AndroidRuntime(15224): at android.view.View$1.onClick(View.java:3693)
08-06 13:04:49.497: E/AndroidRuntime(15224): ... 11 more
08-06 13:04:49.497: E/AndroidRuntime(15224): Caused by: java.lang.ClassCastException: java.util.Vector cannot be cast to java.lang.CharSequence
08-06 13:04:49.497: E/AndroidRuntime(15224): at gguday.lexiconicmkii.MainActivity.typeKey(MainActivity.java:42)
08-06 13:04:49.497: E/AndroidRuntime(15224): ... 14 more
Заранее спасибо за любую помощь.
Пожалуйста, добавьте StackTrace – Elist
@Elist Я сожалею, я не уверен, на самом деле, что это такое ... Я новичок в этом, это мое первое приложение за пределами предварительно построенном обертке. Вы имеете в виду LogCat? –
Вы говорите, что у вас есть исключение, но никогда не говорили, какое исключение или откуда оно было выброшено. «Трассировка стека» дает именно эти две части информации: а) список (стек) методов, называемых с начала потока (скажем, начало вашей программы) методу, в котором исключение было «выброшено» (т. Е. created) И b) тип созданного исключения (это 'class') и настраиваемое сообщение. Где найти трассировку зависит от вашей IDE (вы работаете с eclipse? AndriodStudio?), но если вы знаете, что у вас есть исключение, значит, вы видели его где-то, так что вы должны его найти. – Elist