簡體   English   中英

java.lang.ClassCastException:android.widget.LinearLayout 無法轉換為 android.widget.TextView

[英]java.lang.ClassCastException: android.widget.LinearLayout cannot be cast to android.widget.TextView

我在使用我的應用程序時出現此錯誤:

05-01 14:18:41.000: E/AndroidRuntime(26607): FATAL EXCEPTION: main
05-01 14:18:41.000: E/AndroidRuntime(26607): java.lang.ClassCastException: android.widget.LinearLayout cannot be cast to android.widget.TextView

有問題的方法:

public void onItemClick(AdapterView<?> adapterView, View view, int postion,
        long index) {

    // Get MAC adress matching the last 17 characters of the TextView
   String info = ((TextView) view).getText().toString();    //  HERE IS THE ISSUE
   String address = info.substring(info.length() - 17);

    Intent intent = new Intent();
    intent.putExtra(EXTRA_DEVICE_ADDRESS, address);

    setResult(Activity.RESULT_OK, intent);


    BluetoothDevice device = (BluetoothDevice) view.getTag();

    showEquipementActivity(device);
}

和 XML 文件:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/linearLayout1"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

     <ImageView
        android:id="@+id/ImageView_tactea"
        android:layout_width="200dp"
        android:layout_height="75dp"
        android:src="@drawable/tactea"
        android:layout_gravity="center"
        android:visibility="visible" />

    <LinearLayout
        android:id="@+id/linearLayout2"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:padding="5dip" >

        <TextView
            android:id="@+id/textView1"
            android:layout_width="0dip"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="@string/label_list_of_devices"
            android:textSize="17dip"
            android:textStyle="bold" />

        <Button
            android:id="@+id/buttonScan"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/label_scan" />
    </LinearLayout>

    <ListView
        android:id="@+id/listViewDevices"
        android:layout_width="fill_parent"
        android:layout_height="0dip"
        android:layout_weight="1" >
    </ListView>

</LinearLayout>

這個 XML 文件用於顯示配對的藍牙設備和找到的新聞設備。

你能幫助我嗎?

如何更改這些行?

   String info = ((TextView) view).getText().toString();    //  HERE IS THE ISSUE
   String address = info.substring(info.length() - 17);

更新:我收到以下錯誤:

05-01 14:39:33.150: E/AndroidRuntime(7160): FATAL EXCEPTION: main 
05-01 14:39:33.150: E/AndroidRuntime(7160): java.lang.NullPointerException 
05-01 14:39:33.150: E/AndroidRuntime(7160): at com.example.cajou.DiscoverDevicesActivity.onItemClick(DiscoverDevicesActivity.ja‌​va:179) 
05-01 14:39:33.150: E/AndroidRuntime(7160): at android.widget.AdapterView.performItemClick(AdapterView.java:301) 
05-01 14:39:33.150: E/AndroidRuntime(7160): at android.widget.AbsListView.performItemClick(AbsListView.java:1276)

更新 2:

我試過了:

TextView textview=(TextView) ((LinearLayout)view).findViewById(R.id.textView1);
String info = textview.getText().toString(); 

但我對這一行有疑問:

String info = textview.getText().toString(); 

更新 3:

我試過了:

LinearLayout ll = (LinearLayout) view;
TextView tv = (TextView) ll.findViewById(R.id.textView1);
final String info = tv.getText().toString();

但同樣的問題......這一行是問題所在:

final String info = tv.getText().toString();

僅使用

TextView textview = (TextView)findViewById(R.id.textView1);
String info = textview.getText().toString();

采用

 TextView textview=((LinearLayout)view).findViewById(R.id.textView1);
 String info = textView.getText().toString(); 

這里不需要您提供的xml布局文件。 列表視圖行文件是罪魁禍首。因此,請使用row.xml中提到的Textview的ID。

getText()返回一個EditableText ,而不是String 您必須使用toString()方法將其轉換為String類型:

String text = (TextView)findViewById(R.id.tv).getText().toString();

當相同的 id 用於不同的組件時,會出現此錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM