我有两个以上的文本视图,但我想在用户点击的andorid中复制textview的文本

时间:2014-01-03 04:47:54

标签: android

已经两个textview在点击for contexmenu选项时会出现onCreateContextMenu(),如果用户点击了copy,那么它必须复制所选的textview文本或以字符串形式存储 我得到了上下文菜单,但我需要存储单击用户上下文菜单的文本?

public class Chapter1 extends Activity {

    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.chapter1);

        _1=(TextView)findViewById(R.id.textView2);
        _2=(TextView)findViewById(R.id.textView3);
        registerForContextMenu(_1);
    }

    @Override
    public void onCreateContextMenu(ContextMenu menu, View v,
                                    ContextMenuInfo menuInfo) {
        MenuInflater mi=getMenuInflater();
        mi.inflate(R.menu.main, menu);
        // TODO Auto-generated method stub
        super.onCreateContextMenu(menu, v, menuInfo);
    }        

    public boolean onContextItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case R.id._c:
                String stringYouExtracted=_1.getText().toString();
                Toast.makeText(getApplicationContext(), 
                               "Text Copied Sucess  "+stringYouExtracted, 
                               Toast.LENGTH_LONG).show();
                break;
            default:
                Toast.makeText(getApplicationContext(), 
                               "Under Progress", Toast.LENGTH_LONG).show();
                break;
        }
        return super.onContextItemSelected(item);
    }
}

我总是得到相同的吐司,即文本复制成功textview2

1 个答案:

答案 0 :(得分:0)

您需要在获得点击事件时保存所点击项目的文本

定义了一个新的成员变量mText,在onCreateContextMenu里面,把它放在:

mText = v.getText().toString()

然后在onContextItemSelected内,把它放在:

Toast.makeText(getApplicationContext(), "Text Copied Sucess  "+ mText, Toast.LENGTH_LONG).show();

祝你好好完成其余的功课!