如何在android中将TextView转换为EditText?

时间:2012-04-02 12:28:09

标签: android android-layout

我从数据库中获取数据,然后将其附加到TextView。当我长时间单击TextView时,我想将其转换为EditText。 这就是我在TextView上设置数据的方法:

TextView text = (TextView) vi.findViewById(R.id.menutext);
text.setText(itemnames[position]);//comes from database append to text view

现在我想定义一个setOnLongClickListener来将其转换为EditText。

text.setOnLongClickListener(new OnLongClickListener() {

    public boolean onLongClick(View v) {                
        String edititemname=itemnames[position];
        System.out.println(edititemname);
        return true;                
    }
});

edititemname保存长按一下按下的项目。我想将相同的信息填入EdiText。请帮帮我。

3 个答案:

答案 0 :(得分:16)

据我所知,你无法将一个转换为另一个。你能做的是:在xml中创建一个TextView和一个EditText。显示TextView时隐藏EditText。然后,在onclick的监听器上,您可以:

text.setVisibility(View.GONE); 
editText.setVisibility(View.VISIBLE);
editText.setText(edititemname);

可以在定义文本的位置定义editText变量。您必须使用findViewById

答案 1 :(得分:2)

我已经过测试,它正在工作:

    final EditText et=(EditText)findViewById(R.id.editText1);
    final TextView tv=(TextView)findViewById(R.id.txt);


    tv.setOnLongClickListener(new OnLongClickListener() {

        @Override
        public boolean onLongClick(View v) {
            // TODO Auto-generated method stub
            tv.setVisibility(4);
            final EditText et2=(EditText)findViewById(R.id.editText2);
            et2.setVisibility(1);                       
            return false;

        }
    });

将EditText保持为android:visibility="gone"

答案 2 :(得分:0)

是的,你可以在文本视图后面创建一个edittext,长按textView隐藏textView并显示editext,因为你隐藏了edittext并制作了可见的textView

当您将不可见的textview设置edittext文本设置为textview文本时