2013-01-15 58 views
0

有從TextView的如何在現有視圖中編寫名稱更改?

using Android.App; 
using Android.Content; 
using Android.Content.Res; 
using Android.Runtime; 
using Android.Text; 
using Android.Util; 
using Android.Views; 
using Android.Views.InputMethods; 
using Android.Widget; 
using Android.OS; 
using Android.Graphics; 

namespace HelloWorld 
{ 
class TodoListItemView:TextView 
{ 
private Paint marginPaint; 
private Paint linePaint; 
private int paperColor; 
private float margin; 

public TodoListItemView(Context context, IAttributeSet attrs, int ds): base (context, attrs, ds) 
{ 
    init(); 
} 

public TodoListItemView(Context context, IAttributeSet attrs) : base(context, attrs) 
{ 
    init(); 
} 

private void init() 
{ 
    Resources myResources = Resources; 
    marginPaint = new Paint(PaintFlags.AntiAlias); 
    marginPaint.Color = myResources.GetColor(Resource.Color.notepad_margin); 
    linePaint = new Paint(PaintFlags.AntiAlias); 
    linePaint.Color = myResources.GetColor(Resource.Color.notepad_lines); 
    paperColor = myResources.GetColor(Resource.Color.notepad_paper); 
    margin = myResources.GetDimension(Resource.Dimension.notepad_margin); 

} 

protected override void OnDraw(Canvas canvas) 
{ 

    canvas.DrawLine(0, 0, Height, 0, linePaint); 
    canvas.DrawLine(0, Height, Width, Height, linePaint); 
    // Нарисуйте кромку 
    canvas.DrawLine(margin, 0, margin, Height, marginPaint); 
    // Переместите текст в сторону от кромки 
    canvas.Save(); 
    canvas.Translate(margin, 0); 
    base.OnDraw(canvas); 
    canvas.Restore(); 
} 

} 
} 

繼承被標記todolist_item.xml

<?xml version="1.0" encoding="utf-8"?> 
<TodoListItemView 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:padding="10dp" 
android:scrollbars="vertical" 
android:textColor="@color/notepad_text" 
android:fadingEdge="vertical" 
/> 

我指着TodoListItemView一類,但該名稱不工作,有一個錯誤打開的標記。在Java中也有一個例子,所以在那裏有軟件包,全部清除

<?xml version="1.0" encoding="utf-8"?> 
<com.paad.todolist.TodoListItemView 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:padding="10dp" 
android:scrollbars="vertical" 
android:textColor="@color/notepad_text" 
android:fadingEdge="vertical" 
/> 

要給我看哪個名字?

+1

請只列出您有興趣獲得一個答案的語言。如果列出多種語言,則可能表明您不知道自己在寫什麼。 –

回答

0

我沒有使用過monodroid但我的猜測是,你必須使用像這樣的佈局:

<HelloWorld.TodoListItemView 
... 
/> 

我假設該命名空間是一樣的包裝上的Java。

+0

<?xml version =「1.0」encoding =「utf-8」?> 不工作:「不幸的是,HelloWorld已經停止」 – Qnex

+0

我們可以看到完整的錯誤堆棧嗎? – pablisco

1

你必須使用類名字空間,但是有區別,命名空間需要小寫。

namespace HelloWorld 
{ 
class TodoListItemView:TextView 
{ 

... 

} 

,並在您axml

<?xml version="1.0" encoding="utf-8"?> 
<helloworld.TodoListItemView 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:padding="10dp" 
android:scrollbars="vertical" 
android:textColor="@color/notepad_text" 
android:fadingEdge="vertical" 
/> 
相關問題