![](/img/trans.png)
[英]How can I use the return value of a method as a parameter in another method?
[英]how can i use local String value in another method
我已經通過意圖將數據從 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);
}
兩種選擇:
onCreate()
之外聲明image
、 title
和url
,如下所示:
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);
}
image
、 title
和url
作為initializeplayer
的 arguments 傳遞,如下所示: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);
}
您還可以將這些變量設為全局變量並在任何 function 中使用它,您無需一次又一次地傳遞它。
public String image;
public String title;
public String url;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_exoplayer);
---add your code---
您可以在調用該方法時簡單地傳遞該值
initializeplayer(url);
並在方法聲明中進行少量更改
public void initializeplayer(String url){
//access url in this method
}
我看不出有什么理由你不能這樣做。
只需將參數添加到您的方法中。 例如: public void initializeplayer(String arg){}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.