Отображение информации с пульсометра Bluetooth для просмотра текста Android - PullRequest
0 голосов
/ 06 ноября 2011

Я использовал этот код на примере чата Bluetooth.Это работало, когда это был просмотр списка, и теперь я пытаюсь отобразить это как текстовое представление и теперь не работает вообще.

Я внес небольшие изменения в код только для того, чтобы отобразить полученное сообщение и не смог отправить сообщение обратно.Это избавление от всех методов записи.

Это оригинальный код

private void setupChat() {
    Log.d(TAG, "setupChat()");

    // Initialize the array adapter for the conversation thread
    mConversationArrayAdapter = new ArrayAdapter<String>(this, R.layout.message);
    mConversationView = (ListView) findViewById(R.id.in);
    mConversationView.setAdapter(mConversationArrayAdapter);

    // Initialize the compose field with a listener for the return key
    mOutEditText = (EditText) findViewById(R.id.edit_text_out);
    mOutEditText.setOnEditorActionListener(mWriteListener);

    // Initialize the send button with a listener that for click events
    mSendButton = (Button) findViewById(R.id.button_send);
    mSendButton.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
            // Send a message using content of the edit text widget
            TextView view = (TextView) findViewById(R.id.edit_text_out);
            String message = view.getText().toString();
            sendMessage(message);
        }
    });

    // Initialize the BluetoothChatService to perform bluetooth connections
    mChatService = new BluetoothChatService(this, mHandler);

    // Initialize the buffer for outgoing messages
    mOutStringBuffer = new StringBuffer("");
}

Это то, что я изменил на.

 private void setupChat() 
{
    Log.d(TAG, "setupChat()");

    mIn = (TextView) findViewById(R.id.in);
    // Initialize the array adapter for the conversation thread
    // Initialize the BluetoothChatService to perform bluetooth connections
    mChatService = new BluetoothChatService(this, mHandler);

Это logcatвыходные данные.

    11-06 15:35:52.047: E/AndroidRuntime(19780): FATAL EXCEPTION: main

11-06 15: 35: 52.047: E / AndroidRuntime (19780): java.lang.RuntimeException: невозможно запустить действие ComponentInfo {com.example.android.BluetoothChat /com.example.android.BluetoothChat.BluetoothChat}: java.lang.ClassCastException: android.widget.ListView 11-06 15: 35: 52.047: E / AndroidRuntime (19780): в android.app.ActivityThread.performLaunchActivity (ActivityThread.java): 2781) 11-06 15: 35: 52.047: E / AndroidRuntime (19780): на android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2797) 11-06 15: 35: 52.047: E / AndroidRuntime (19780):в android.app.ActivityThread.access $ 2300 (ActivityThread.java:135) 11-06 15: 35: 52.047: E / AndroidRuntime (19780): в android.app.ActivityThread $ H.handleMessage (ActivityThread.java:2132) 11-06 15: 35: 52.047: E / AndroidRuntime (19780): на android.os.Handler.dispatchMessage (Handler.java:99) 11-06 15: 35: 52.047: E / AndroidRuntime (19780): на android.os.Looper.loop (Looper.java:143) 11-06 15: 35: 52.047: E /AndroidRuntime (19780): на android.app.ActivityThread.main (ActivityThread.java:4914) 11-06 15: 35: 52.047: E / AndroidRuntime (19780): на java.lang.reflect.Method.invokeNative (собственный метод)11-06 15: 35: 52.047: E / AndroidRuntime (19780): по адресу java.lang.reflect.Method.invoke (Method.java:521) 11-06 15: 35: 52.047: E / AndroidRuntime (19780): по адресуcom.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:868) 11-06 15: 35: 52.047: E / AndroidRuntime (19780): на com.android.internal.os.ZygoteInit.main (ZygoteInit.java: 626) 11-06 15: 35: 52.047: E / AndroidRuntime (19780): at dalvik.system.NativeStart.main (собственный метод) 11-06 15: 35: 52.047: E / AndroidRuntime (19780): вызваноавтор: java.lang.ClassCastException: android.widget.ListView 11-06 15: 35: 52.047: E / AndroidRuntime (19780): на com.example.android.BluetoothChat.BluetoothChat.setupChat (BluetoothChat.java:141) 11-06 15:35: 52.047: E / AndroidRuntime (19780): на com.example.android.BluetoothChat.BluetoothChat.onStart (BluetoothChat.java:116) 11-06 15: 35: 52.047: E / AndroidRuntime (19780): на android.app.Instrumentation.callActivityOnStart (Instrumentation.java:1197) 11-06 15: 35: 52.047: E / AndroidRuntime (19780): на android.app.Activity.performStart (Activity.java:3822) 11-06 15: 35: 52.047:E / AndroidRuntime (19780): в android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2754)

Другие изменения заключались в удалении метода sendMessage () и случая MESSAGE_WRITE в handleMessage ().

Также убрал два метода записи (buffer [] byte) write из класса BluetoothChatServices

Я смотрел на это в течение нескольких дней и действительно не могу понять, чтонеправильно.

1 Ответ

1 голос
/ 06 ноября 2011

Глядя на ваш код, вы видите, что в исходном коде у вас есть R.id.in, который преобразуется в ListView. В вашем новом коде у вас есть тот же ресурс (R.id.in), который преобразуется в TextView.Вероятно, происходит то, что вы не изменили R.id.in как TextView в файле макета и пытаетесь преобразовать ListView в TextView, что приведет к этой ошибке.

Ошибка

 java.lang.ClassCastException: android.widget.ListView

Должен дать вам хороший совет о том, что вы ищете.ClassCastException означает, что вы пытались привести объект к типу, к которому он не может быть приведен.Поэтому лучше всего было бы искать, куда вы ведете вещи, а также номер строки, которую вам дал вывод logcat.Если вы что-то там приводите (TextView), вы должны убедиться, что и тип, и тип, из которого вы преобразуетесь, и правильный.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...