【发布时间】:2018-11-08 11:36:09
【问题描述】:
我正在尝试将视图膨胀为约束布局。在活动中这不是问题。但我也希望能够从另一个名为getViews() 的类方法中调用它。如何访问约束布局以扩展视图?
public class chromecastUI_inflater {
Button btn, btn1, fastforward, rewind, play, pause;
TextView title, user, discription, date, streamviews, chromeconnection;
ConstraintLayout constraintLayout1;
Selector selector = new Selector();
Context c;
public chromecastUI_inflater() {
编辑
我也尝试通过公共构造函数添加布局:
}
public void getViews(View view) {
play = view.findViewById(R.id.play);
pause = view.findViewById(R.id.pause_button);
fastforward = view.findViewById(R.id.fastforward_button);
rewind = view.findViewById(R.id.rewind_button);
btn1 = view.findViewById(R.id.cast_connection_button);
btn = view.findViewById(R.id.cast_connection_button3);
chromeconnection = view.findViewById(R.id.tvcast);
//here is my problem layout
编辑
这里我试过添加
view.findViewById
constraintLayout1 = findViewById(R.id.localplayerview);
title = view.findViewById(R.id.title_text_view);
discription = view.findViewById(R.id.discription_text_view);
date = view.findViewById(R.id.date_text_view);
streamviews = view.findViewById(R.id.views_text_view);
user = view.findViewById(R.id.uploadedby_text_view);
constraintLayout1.addView(view);
}
public void inflateViews() {
LayoutInflater inflater = (LayoutInflater) c.getApplicationContext().getSystemService
(Context.LAYOUT_INFLATER_SERVICE);
View view = inflater.inflate(R.layout.layout, null);
getViews(view);
}
public void setUI() {
title.setText(selector.DOCTITLE);
discription.setText(selector.ABOUT);
date.setText(selector.DATE);
streamviews.setText(selector.VIEWS);
user.setText(selector.USER);
}
public void resetUI() {
title.setText("");
discription.setText("");
date.setText("");
streamviews.setText("");
user.setText("");
}
public void Chromecast_Connected() {
chromeconnection.setText("Chromecast is connected");
btn.setVisibility(View.VISIBLE);
btn1.setVisibility(View.GONE);
}
public void Chromecast_Disconnected() {
chromeconnection.setText("Chromecast is connected");
btn.setVisibility(View.GONE);
btn1.setVisibility(View.VISIBLE);
}
}
这是我想从我的local_player 活动中调用方法的地方
chromecastUI_inflater chromecastUiInflater = new chromecastUI_inflater();
@Override
public void onChromecastConnecting() {
Log.d(getClass().getSimpleName(), "onChromecastConnecting");
chromecastUiInflater.inflateViews();
}
@Override
public void onChromecastConnected(ChromecastYouTubePlayerContext chromecastYouTubePlayerContext) {
Log.d(getClass().getSimpleName(), "onChromecastConnected");
chromecastUiInflater.setUI();
chromecastUiInflater.Chromecast_Connected();
initializeCastPlayer(chromecastYouTubePlayerContext);
}
我习惯于从活动内部夸大视图。
【问题讨论】:
标签: java android view layout-inflater