最近用SlidingMenu遇到一个问题,想在滑动菜单栏的上方显示登录用户的名称和相关信息,下面是我的代码
LayoutInflater inflater = getLayoutInflater().from(this);
View view = inflater.inflate(R.layout.sliding_menu, null);
TextView textView = (TextView) view.findViewById(R.id.user_name
);
textView.setText("userName");
因为slidingmenu是单独写在一个布局文件中的,所以不能直接使用findViewById,要使用LayoutInflater。结果没起作用,主界面UI没有刷新
在网上搜了一堆,都说得用handler等处理,于是又改成如下:
class testThread extends Thread{
public void run() {
Message message = new Message();
mHandler.sendMessage(message);
}
}
private Handler mHandler = new Handler(){
public void handleMessage(Message msg) {
textView.setText("");
};
};
结果还是没用,主页面UI根本不刷新,百度和谷歌搜索了一大堆,没有一个有用的解决办法,自己倒腾了一天,终于解决了,记录一下
解决方案:
让使用slidingmenu的activity继承一个新的activity,比如我在MainActivity中使用的slidingmenu,而我的MainActivity原本继承自AppCompatActivity,那我可以新建一个类newBaseActivity,让这个类继承自AppCompatActivity,然后写一个setUserName的方法,代码如下
public class newBaseActivity extends AppCompatActivity {
public void setUserName(String name) {
LinearLayout layout = (LinearLayout) findViewById(R.id.menu);
TextView textView = (TextView) layout.findViewById(R.id.user_name);
textView.setText(name);
}
}
然后 让 MainActivity继承自newBaseActivity,在MainActivity中,在slidingmenu初始化之后,调用setUserName方法即可。
这样,问题就解决
扫描二维码关注公众号,回复:
3463048 查看本文章