android studio中TextView的setText不显示

zxh_33 2017-08-16 10:00:41
layout中一页面有按钮,使用android:onClick="timerStartOnClick";一个EditText;一个TextView。
MainActivity中方法:
。。。
TextView tv;
。。。。
public void timerStartOnClick(View view){
View rootView = getLayoutInflater().inflate(R.layout.framelayout_timer,null);
tv=rootView.findViewById(R.id.timeText);//获取显示计时的TextView
EditText et=rootView.findViewById(R.id.textViewTime);//获取输入的分钟数
long l=Integer.parseInt(et.getText().toString());

if(l==0){
l=40;
}

timer=new CountDownTimer(l*1000*60,1000) {
@Override
public void onTick(long millisUntilFinished) {

long l=millisUntilFinished/1000;//剩余的秒数
Toast.makeText(getApplicationContext(),tv.getText(),Toast.LENGTH_SHORT).show();
tv.setText(l/60+":"+l%60);//改变显示计时的TextView
}

@Override
public void onFinish() {

}
};
timer.start();

}
编译运行没报错,Toast也显示倒数,但是TextView显示没变。

界面使用ViewPager和Fragment实现导航栏
...全文
1453 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
zxh_33 2017-08-16
  • 打赏
  • 举报
回复
我发现了,其实只要rootView=view.getRootView();就行了
zxh_33 2017-08-16
  • 打赏
  • 举报
回复
引用 4 楼 xw13782513621 的回复:
[quote=引用 2 楼 zxh_33 的回复:] [quote=引用 1 楼 xw13782513621 的回复:] public void timerStartOnClick(View view) { tv = findViewById(R.id.timeText);//获取显示计时的TextView EditText et = findViewById(R.id.textViewTime);//获取输入的分钟数 long l = Integer.parseInt(et.getText().toString()); if (l == 0) { l = 40; } timer = new CountDownTimer(l * 1000 * 60, 1000) { @Override public void onTick(long millisUntilFinished) { long l = millisUntilFinished / 1000;//剩余的秒数 tv.setText(l / 60 + ":" + l % 60);//改变显示计时的TextView Toast.makeText(getApplicationContext(), tv.getText(), Toast.LENGTH_SHORT).show(); } @Override public void onFinish() { } }; timer.start(); } 调用getLayoutInflater().inflate就相当于新建了一个布局,你tv.setText(l / 60 + ":" + l % 60);设置的是新建的布局中的,而不是界面上看到的
那这里应该怎么从传入的view(按钮)参数获取同一个xml下的其他控件?[/quote] 额,直接findViewById啊,我上面写的就是改了的啊 也不叫从传入的View,是直接从Activity中获取[/quote] findViewById只能获取当前
引用 4 楼 xw13782513621 的回复:
[quote=引用 2 楼 zxh_33 的回复:] [quote=引用 1 楼 xw13782513621 的回复:] public void timerStartOnClick(View view) { tv = findViewById(R.id.timeText);//获取显示计时的TextView EditText et = findViewById(R.id.textViewTime);//获取输入的分钟数 long l = Integer.parseInt(et.getText().toString()); if (l == 0) { l = 40; } timer = new CountDownTimer(l * 1000 * 60, 1000) { @Override public void onTick(long millisUntilFinished) { long l = millisUntilFinished / 1000;//剩余的秒数 tv.setText(l / 60 + ":" + l % 60);//改变显示计时的TextView Toast.makeText(getApplicationContext(), tv.getText(), Toast.LENGTH_SHORT).show(); } @Override public void onFinish() { } }; timer.start(); } 调用getLayoutInflater().inflate就相当于新建了一个布局,你tv.setText(l / 60 + ":" + l % 60);设置的是新建的布局中的,而不是界面上看到的
那这里应该怎么从传入的view(按钮)参数获取同一个xml下的其他控件?[/quote] 额,直接findViewById啊,我上面写的就是改了的啊 也不叫从传入的View,是直接从Activity中获取[/quote] findViewById只能获取当前setContentView里的东西,我要获取其他xml(参数)里的东西
江三木洛 2017-08-16
  • 打赏
  • 举报
回复
引用 2 楼 zxh_33 的回复:
[quote=引用 1 楼 xw13782513621 的回复:] public void timerStartOnClick(View view) { tv = findViewById(R.id.timeText);//获取显示计时的TextView EditText et = findViewById(R.id.textViewTime);//获取输入的分钟数 long l = Integer.parseInt(et.getText().toString()); if (l == 0) { l = 40; } timer = new CountDownTimer(l * 1000 * 60, 1000) { @Override public void onTick(long millisUntilFinished) { long l = millisUntilFinished / 1000;//剩余的秒数 tv.setText(l / 60 + ":" + l % 60);//改变显示计时的TextView Toast.makeText(getApplicationContext(), tv.getText(), Toast.LENGTH_SHORT).show(); } @Override public void onFinish() { } }; timer.start(); } 调用getLayoutInflater().inflate就相当于新建了一个布局,你tv.setText(l / 60 + ":" + l % 60);设置的是新建的布局中的,而不是界面上看到的
那这里应该怎么从传入的view(按钮)参数获取同一个xml下的其他控件?[/quote] 额,直接findViewById啊,我上面写的就是改了的啊 也不叫从传入的View,是直接从Activity中获取
寒冰大神 2017-08-16
  • 打赏
  • 举报
回复
写的啥啊,findViewById放在onCreate里啊, private TextView tv; private CountDownTimer timer; private EditText et; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main2); tv = (TextView) findViewById(R.id.timeText);//获取显示计时的TextView et = (EditText) findViewById(R.id.textViewTime);//获取输入的分钟数 } public void timerStartOnClick(View view) { long l = Integer.parseInt(et.getText().toString()); if (l == 0) { l = 40; } timer = new CountDownTimer(l * 1000 * 60, 1000) { @Override public void onTick(long millisUntilFinished) { long l = millisUntilFinished / 1000;//剩余的秒数 Toast.makeText(getApplicationContext(), tv.getText(), Toast.LENGTH_SHORT).show(); tv.setText(l / 60 + ":" + l % 60);//改变显示计时的TextView } @Override public void onFinish() { } }; timer.start(); }
zxh_33 2017-08-16
  • 打赏
  • 举报
回复
引用 1 楼 xw13782513621 的回复:
public void timerStartOnClick(View view) { tv = findViewById(R.id.timeText);//获取显示计时的TextView EditText et = findViewById(R.id.textViewTime);//获取输入的分钟数 long l = Integer.parseInt(et.getText().toString()); if (l == 0) { l = 40; } timer = new CountDownTimer(l * 1000 * 60, 1000) { @Override public void onTick(long millisUntilFinished) { long l = millisUntilFinished / 1000;//剩余的秒数 tv.setText(l / 60 + ":" + l % 60);//改变显示计时的TextView Toast.makeText(getApplicationContext(), tv.getText(), Toast.LENGTH_SHORT).show(); } @Override public void onFinish() { } }; timer.start(); } 调用getLayoutInflater().inflate就相当于新建了一个布局,你tv.setText(l / 60 + ":" + l % 60);设置的是新建的布局中的,而不是界面上看到的
那这里应该怎么从传入的view(按钮)参数获取同一个xml下的其他控件?
江三木洛 2017-08-16
  • 打赏
  • 举报
回复
public void timerStartOnClick(View view) { tv = findViewById(R.id.timeText);//获取显示计时的TextView EditText et = findViewById(R.id.textViewTime);//获取输入的分钟数 long l = Integer.parseInt(et.getText().toString()); if (l == 0) { l = 40; } timer = new CountDownTimer(l * 1000 * 60, 1000) { @Override public void onTick(long millisUntilFinished) { long l = millisUntilFinished / 1000;//剩余的秒数 tv.setText(l / 60 + ":" + l % 60);//改变显示计时的TextView Toast.makeText(getApplicationContext(), tv.getText(), Toast.LENGTH_SHORT).show(); } @Override public void onFinish() { } }; timer.start(); } 调用getLayoutInflater().inflate就相当于新建了一个布局,你tv.setText(l / 60 + ":" + l % 60);设置的是新建的布局中的,而不是界面上看到的

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧