java - 我如何在另一种方法中使用本地字符串值
问题描述
我已经通过意图将数据从 recyclerview mainactivity 传递到 exoplayer 活动。现在的问题是我想在另一种方法中使用该值。那么我如何在另一种方法中使用该值。
exoplayer活动:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_exoplayer);
thumb = findViewById(R.id.thumb);
head = findViewById(R.id.head);
String image = getIntent().getStringExtra("image");
String title = getIntent().getStringExtra("title");
//i want use this String value in different method
String url = getIntent().getStringExtra("url");
head.setText(title);
Glide.with(this).asBitmap().load(image).into(thumb);
initializeplayer();
}
//i want use that string value in this method.
public void initializeplayer(){
playerView = findViewById(R.id.exo);
simpleExoPlayer = ExoPlayerFactory.newSimpleInstance(this);
playerView.setPlayer(simpleExoPlayer);
DataSource.Factory datasourcefactory = new DefaultDataSourceFactory(this,
Util.getUserAgent(this, "appname"));
MediaSource mediaSource = new ExtractorMediaSource.Factory(datasourcefactory)
.createMediaSource(Uri.parse(url1));
simpleExoPlayer.prepare(mediaSource);
simpleExoPlayer.setPlayWhenReady(true);
}
解决方案
两种选择:
- 声明
image
,title
和url
外面onCreate()
这样:
String image;
String title;
String url;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_exoplayer);
thumb = findViewById(R.id.thumb);
head = findViewById(R.id.head);
image = getIntent().getStringExtra("image");
title = getIntent().getStringExtra("title");
//i want use this String value in different method
url = getIntent().getStringExtra("url");
head.setText(title);
Glide.with(this).asBitmap().load(image).into(thumb);
initializeplayer();
}
//i want use that string value in this method.
public void initializeplayer(){
//use image, title and url
playerView = findViewById(R.id.exo);
simpleExoPlayer = ExoPlayerFactory.newSimpleInstance(this);
playerView.setPlayer(simpleExoPlayer);
DataSource.Factory datasourcefactory = new DefaultDataSourceFactory(this,
Util.getUserAgent(this, "appname"));
MediaSource mediaSource = new ExtractorMediaSource.Factory(datasourcefactory)
.createMediaSource(Uri.parse(url1));
simpleExoPlayer.prepare(mediaSource);
simpleExoPlayer.setPlayWhenReady(true);
}
- Pass
image
,title
并url
作为这样的参数initializeplayer
:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_exoplayer);
thumb = findViewById(R.id.thumb);
head = findViewById(R.id.head);
String image = getIntent().getStringExtra("image");
String title = getIntent().getStringExtra("title");
//i want use this String value in different method
String url = getIntent().getStringExtra("url");
head.setText(title);
Glide.with(this).asBitmap().load(image).into(thumb);
initializeplayer(image, title, url);
}
//i want use that string value in this method.
public void initializeplayer(String image, String title, String url){
//use image, title and url
playerView = findViewById(R.id.exo);
simpleExoPlayer = ExoPlayerFactory.newSimpleInstance(this);
playerView.setPlayer(simpleExoPlayer);
DataSource.Factory datasourcefactory = new DefaultDataSourceFactory(this,
Util.getUserAgent(this, "appname"));
MediaSource mediaSource = new ExtractorMediaSource.Factory(datasourcefactory)
.createMediaSource(Uri.parse(url1));
simpleExoPlayer.prepare(mediaSource);
simpleExoPlayer.setPlayWhenReady(true);
}
推荐阅读
- angular - 如何创建显示值和模型值不同的输入?
- database - 是否可以在返回之前合并 neo4j 中两个对象的属性?
- javascript - 如何使用数组数组中的多个变量进行计算和显示(Vue+laravel)
- django - 如何在对象过滤器中正确使用日期
- c# - 仅在特定时间无法访问数组
- android - Retrofit 2 处理 JSONArray 或 JSONObject 的动态 api 回调
- nested - 遍历 terraform 中的地图列表列表
- android - 我也想增加选定选项卡和指示器的大小
- python - 将数字列表从 0-5 更改为 0-10 的函数存在零问题
- swift - 从纵向移动到横向时如何修复 UIcollectionView 中的项目宽度?