2017-01-21 3 views
1

一部のURLアドレス、タイル、テキストはstrings.xmlファイルで宣言されています。私はmvcアーキテクチャを使いたい。 モデルクラスでは、コンストラクタークラスは入力のリソースIDを受け取ります。 title、text、urlのリソースIDが与えられます。 コントローラクラスでは、モデルクラスの配列が作成されます。以下のコードでは、TextViewにsetTextを設定したいが、VideoViewのURLを設定したいときに(mFilmUrlId.setVideoURI(コンテンツ))は動作しません。

setVideoURIはintには適用されません。
AndroidのモデルクラスにVideoView Urlを渡す

private Content[] mContentBank = new Content[]{ 
     new Content(R.string.title_1,R.string.url_1,R.string.text_1), 
     new Content(R.string.title_2,R.string.url_2,R.string.text_2), 
}; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_training); 

    int content; 

    mTitle = (TextView) findViewById(R.id.tainingTitle); 
    content = mContentBank[mCurrentIndex].getTitle(); 
    mTitle.setText(content); 

    mFilmUrlId = (VideoView) findViewById(R.id.tainingVideoView); 
    content = mContentBank[mCurrentIndex].getFilmUrlId(); 
    mFilmUrlId.setVideoURI(content); /// ???????????? 


<string name="text_1"> https://as9.asset.aparat.com/aparat-video/a_4c13e4fj00iihk43661kg30if959g5j5f35304191771-968u__58a42.mp4 
</string> 

Modelクラス

public class Content { 
    private int mTitle; 
    private int mFilmUrlId; 
    private int mTextResId; 
    public Content(int title, int filmUrlId, int textResId){ 
     mTitle=title; 
     mFilmUrlId=filmUrlId; 
     mTextResId=textResId; 
    } 
    //getter &setters 
} 

答えて

1

setVideoURI()は、パラメータとしてURIを取りますが、あなたは整数であるR.string.url_1に合格しようとしています。 R.string.url_1をStringに変換してからUriとして解析する必要があります。

content = mContentBank[mCurrentIndex].getFilmUrlId(); 
String url = getString(content); 
mFilmUrlId.setVideoURI(Uri.parse(url)); 
関連する問題