2011-11-29 60 views
0

我想開發一個小的android應用程序,只是打開瀏覽器到網站。我使用的是Mac OS 10.6和最新的android/eclipse工具。不過,我不斷收到此異常:爲什麼這個異常:java.lang.RuntimeException:錯誤膨脹類

11-29 13:03:55.113:E/AndroidRuntime(1012):了java.lang.RuntimeException:無法啓動活動ComponentInfo {com.mycomp/com.mycomp.pack }:android.view.InflateException:二進制XML文件行#7:錯誤充氣類com.mycomp.MyTextView

這裏是我的代碼:

package com.mycomp; 
import android.app.Activity; 
import android.content.Context; 
import android.content.Intent; 
import android.net.Uri; 
import android.os.Bundle; 
import android.util.AttributeSet; 
import android.util.Log; 
import android.view.View; 
import android.widget.TextView; 


public class myapp extends Activity { 
/** Called when the activity is first created. */` 

private MyTextView myview; 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main);  
    Log.d("onCreate", "onCreate "); 

    myview = (MyTextView)findViewById(R.id.myview); 
    myview.setParent(this); 
} 




public static class MyTextView extends TextView { 
    private View mLastVisChangedView; 
    private int mLastChangedVisibility; 
    private Activity parent; 

    public void setParent(Activity p){ 
     parent =p; 

    } 
    public MyTextView(Context context) { 
     super(context); 
    } 

    public MyTextView(Context context, AttributeSet attrs) { 
     super(context, attrs); 
    } 

    public MyTextView(Context context, AttributeSet attrs, int defStyle) { 
     super(context, attrs, defStyle); 
    } 

    public View getLastVisChangedView() { 
     return mLastVisChangedView; 
    } 

    public int getLastChangedVisibility() { 
     return mLastChangedVisibility; 
    } 

    @Override 
    protected void onVisibilityChanged(View changedView, int visibility){ 
     Log.d("onVisibilityChanged", "new vis == " + visibility); 
     if (parent !=null && visibility == View.VISIBLE){ 
      parent.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.mysite.com"))); 
      parent.moveTaskToBack(true); 
     } 
    } 
} 

} 

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:orientation="vertical" > 

<com.mycomp.MyTextView 
    android:id="@+id/myview" 
     android:text="@string/hello"/> 

</LinearLayout> 

回答

1

類型是com.mycomp.myapp.MyTextView。 (或者$因爲它是一個內部類?)

您可能還需要如下指定的觀點:

<view class="com.mycomp.myapp$MyEditText" ... 

我不認爲你在這種情況下,需要一個onFinishInflate

+0

謝謝!我曾嘗試過,但有一個點,你有一個$。這讓我瘋狂。 BTW爲其他人,之後,我仍然需要添加一個android:layout_width = ..到XML。 –

+0

@Calgacus沒問題:)如果有合理的理由這麼做,我只會嵌套這個類,儘管 - 可能有一個,只是說'。 –

0

你應該把MyTextView類放在一個單獨的文件中。然後com.mycomp.MyTextView將是正確的。

相關問題