2016-06-29 78 views
0

我很抱歉,我很難理解我的任務,並用它來表達。我希望能夠在傳遞泛型參數的同時從命令行啓動一個活動。我的老闆說我們還不知道將要通過什麼,所以它需要是通用的。我可以這樣做,所以一個Intent對象需要一個字符串,或一個int,或其他任何東西 - 我知道該怎麼做,但我怎樣才能讓它只需要一些通用的參數?命令行將一般參數傳遞給一個意圖

+1

「從命令行啓動一個活動」 - 我將它解釋爲:「使用'adb shell am start'從開發者機器的命令行啓動活動」。 「雖然傳遞它的一般論據」 - 我解釋「參數」是指「意圖」額外。 「但是我怎麼讓它只是採取一些通用的論點?」 - 從數據類型的角度來看,你不能有「通用參數」。 「adb shell am start」開關用於指定額外值,這要求您指明數據類型。 – CommonsWare

+0

你的假設是正確的。我正在使用adb shell我開始...感謝您讓我知道它不能使用泛型參數,因爲您必須指明數據類型。我可能只需要跟我的老闆談談,看看他想要什麼。問題是,他的人民不知道將會傳遞什麼論據,所以他說盡量使其具有通用性,但它可能是不可能的。 –

回答

1

嗯,我認爲你需要一種方法來開發你的代碼,而沒有爲你的意圖提供正確的信息。在這種情況下,只需使用已經定義的項目,字符串,對象,無論您想從中獲得什麼和意圖如何。例如:

public class VideoPlayerActivity extends Activity { 

    //values that you are going to use 
    private boolean mIsVideo; 
    private String mFilePath; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     setContentView(R.layout.my_awesome_layout); 

     // get extra parameters from the intent 
     Intent intent = getIntent(); 
     //We dont have an intent yet, so just add a defined value to your parameters and still working  
     //mIsPhoto = intent.getBooleanExtra("is-photo-key"); 
     //mFilePath = intent.getStringExtra("file-path-key"); 
     mIsPhoto = true; 
     mFilePath = "storage/emulated/DCIM/Camera/myExamepleImage.jpeg"; 

     //All your code 
    } 

我認爲這是你在找什麼。通常你不會在項目開始時獲得信息或原始值。所以通常你會使用定義的值。例如,在這種情況下,這是VideoMediaPlayer的代碼。

我沒有我的視頻文件值或任何我可以從和意圖。所以我會使用相同的路徑(和相同的視頻),直到我能夠獲得正確的值。

希望它能幫助你!

+0

我想我明白你說的是什麼,但我不明白如果你不使用它,意圖是什麼。另外我假設mIsPhoto應該是實例變量mIsVideo。說實話,我完全不明白我的任務是什麼,所以我會要求我的老闆向我解釋。 –

+1

我正在使用和意圖因爲你說你將來會使用它。當老闆會讓你知道你的活動將會收到的信息時,你可以刪除該行並使用它。它的正義和榜樣。後來在我的代碼中,我使用mIsPhoto來設置imageView,如果我收到的媒體文件是照片或者如果文件是視頻,則調用新的視頻表面。 –