0

これは紙の上に各アイテムを表示するようにするtodolistアプリケーションです パッド(側面の余白&アイテム間の黒い線) 私はアプリケーションを実行すると、エントリが作成されるたびに空のアイテムがリストに追加されます。また、アレイアダプターの構築にtodolistitemview isntが使用されていれば、アプリケーションは正常に動作します。 これは私のtodolistactivityファイルです:テキストはtodolistアプリケーションに表示されません

package com.paad.todolist; 

import java.util.ArrayList; 

import android.app.Activity; 
import android.os.Bundle; 
import android.view.KeyEvent; 
import android.view.View; 
import android.view.View.OnKeyListener; 
import android.widget.ArrayAdapter; 
import android.widget.EditText; 
import android.widget.ListView; 

public class TodolistActivity extends Activity { 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     ListView myListView = (ListView)findViewById(R.id.myListView); 
     final EditText myEditText = (EditText)findViewById(R.id.myEditText); 
     // Create the array list of to do items 
     final ArrayList<String> todoItems = new ArrayList<String>(); 
     // Create the array adapter to bind the array to the listview 
     int resID = R.layout.todolist_itemview; 
     final ArrayAdapter<String> aa = new ArrayAdapter<String>(this, resID, 
     todoItems); 
     // Bind the array adapter to the listview. 
     myListView.setAdapter(aa); 
     myEditText.setOnKeyListener(new OnKeyListener() { 
      public boolean onKey(View v, int keyCode, KeyEvent event) { 
      if (event.getAction() == KeyEvent.ACTION_DOWN) 
      if (keyCode == KeyEvent.KEYCODE_DPAD_CENTER) 
      { 
      todoItems.add(0, myEditText.getText().toString()); 
      aa.notifyDataSetChanged(); 
      myEditText.setText(""); 
      return true; 
      } 
      return false; 
      } 
      }); 
      } 
} 

これは私のtodolistitemviewコードです:

package com.paad.todolist; 
import android.content.Context; 
import android.content.res.Resources; 
import android.graphics.Canvas; 
import android.graphics.Paint; 
import android.util.AttributeSet; 
import android.widget.TextView; 


public class todolistitemview extends TextView{ 
    public todolistitemview(Context context){ 
     super(context); 
     init(); 
    } 
    public todolistitemview(Context context,AttributeSet ats){ 
     super(context,ats); 
     init(); 
    } 
    public todolistitemview(Context context,AttributeSet ats,int ds){ 
     super(context,ats,ds); 
     init(); 

} 
    private Paint marginpaint; 
    private Paint linepaint; 
    private int papercolor; 
    private float margin; 
    private void init(){ 
     Resources myresources=getResources(); 
     marginpaint=new Paint(Paint.ANTI_ALIAS_FLAG); 
     marginpaint.setColor(myresources.getColor(R.color.notepad_margin)); 
     linepaint=new Paint(Paint.ANTI_ALIAS_FLAG); 
     linepaint.setColor(myresources.getColor(R.color.notepad_lines)); 
     papercolor=myresources.getColor(R.color.notepad_paper); 
     margin=myresources.getDimension(R.dimen.notepad_margin); 

    } 

@Override 
public void onDraw(Canvas canvas){ 
    canvas.drawColor(papercolor); 
    canvas.drawLine(0, 0, getMeasuredWidth(), 0, linepaint); 
    canvas.drawLine(0, getMeasuredHeight(), getMeasuredWidth(), getMeasuredHeight(), linepaint); 
    canvas.drawLine(margin, 0, margin, getMeasuredHeight(), marginpaint); 
    canvas.save(); 
    canvas.translate(margin,0); 
} 
} 

これらは、レイアウトファイル -

main.xml-

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="vertical" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent"> 
<EditText 
android:id="@+id/myEditText" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:text="New To Do Item" 
/> 
<ListView 
android:id="@+id/myListView" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
/> 

</LinearLayout> 

todolist_itemviewです。 xml-

<?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="wrap_content" 
android:padding="10dp" 
android:scrollbars="vertical" 
android:textColor="@color/notepad_text" 
android:fadingEdge="vertical" 
/> 

この問題を解決するのを手伝ってください。どんな助けも大歓迎です。

+0

これを機能として販売します。それを「何もしない」と呼んでください。 –

答えて

1

あなたは本の完全なコードをコピーしませんでした。カスタムTextView行の後onDraw()方法、で:

canvas.translate(margin,0); 

あなたが追加する必要があります。

super.onDraw(canvas); 
canvas.restore(); 

コールがなければ、スーパークラスonDraw()方法にカスタムTextViewは、テキストを最も重要な部分を描画しません。それで、あなたは実際に紙の絵を手に入れますが、テキストは手に入れません。

+0

それは働いた。どうもありがとう。 – user1174214

関連する問題