为什么textview在按钮点击时显示较旧的值?

时间:2017-05-23 10:55:31

标签: android android-layout

我有一项活动,我有ButtonTextView。如果我继续前进并返回相同的活动,我正在通过setText()TextView设置新消息(剪贴板消息)。现在,如果我在Button点击时收到 public class MainActivity extends AppCompatActivity implements View.OnClickListener{ Button get_video; TextView text_view; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Log.d("start","start"); text_view =(TextView) findViewById(R.id.texturl); get_video=(Button) findViewById(R.id.get_video); ClipboardManager clipboard = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE); String paste_url=clipboard.getText().toString(); Log.d("clip",paste_url); text_view.setText(paste_url); Log.d("text",text_view.getText().toString()); get_video.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String url = text_view.getText().toString(); Log.d("url",url); } }); } } 的文字,我就会得到较旧的值。此外,它没有使用新消息刷新textview。

hdrs

2 个答案:

答案 0 :(得分:0)

onCreate()在活动时只调用一次,如果您想要更新,则来自后台或来自其他活动时必须使用 onResume()< / strong>所以把它放在 onResume()

@Override
    protected void onResume() {
        super.onResume();
        ClipboardManager clipboard = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
        if(clipboard.getText()!=null)
        {
            String paste_url=clipboard.getText().toString();
            Log.d("clip",paste_url);

            text_view.setText(paste_url);
        }

    }

答案 1 :(得分:0)

只需将剪贴板管理器行复制到按钮单击,即可解决问题

get_video.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                ClipboardManager clipboard = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
                 String paste_url=clipboard.getText().toString();
                Log.d("clip",paste_url);
                text_view.setText(paste_url);
                url = text_view.getText().toString();
             Log.d("url",url);
}