Android EditText行号

时间:2013-02-06 21:07:04

标签: java android textview android-edittext

我的上一个问题已经关闭,所以我会提供更多信息以及我尝试过的内容。 我为EditText旁边的行号添加了一个Thin TextView。下面的代码是尝试在应用加载时为行创建数字。问题是a)数字没有显示出来。和b)如果滚动EditText,行号不会随之滚动。关于如何实现行号的任何想法?

private List<String> items = null;
private EditText ideText;
private TextView ln;
    @Override
        public void onCreate(Bundle icicle) {
            super.onCreate(icicle);
            setContentView(R.layout.main);
            ideText = (EditText) findViewById(R.id.ide);
            ln = (TextView) findViewById(R.id.lineNumbers);
            // Create Line Numbers
           for(int i=0;i<ideText.getLineCount();i++){
               ln.append(i +"\n");
           }
        }

编辑:

public class EditTextLineNumbers extends EditText{

    private int lineNum;

    public EditTextLineNumbers(Context context) {
        super(context);
        // TODO Auto-generated constructor stub
    }

    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        lineNum = this.getLineCount();
    for(int i = 0;i<lineNum;i++){
        this.append(i+"\n");
    }
    }
}

Main.java

private List<String> items = null;
private EditTextLineNumbers ideText;

    @Override
    public void onCreate(Bundle icicle) {
        super.onCreate(icicle);
        setContentView(R.layout.main);
        ideText = (EditTextLineNumbers) findViewById(R.id.ide);

        File dir = new File(Environment.getExternalStorageDirectory() + "/My Webs");
        if(dir.isDirectory()) {
            getFiles(dir.listFiles());
        }else{
            dir.mkdir();
        }
    }

0 个答案:

没有答案