0
傳遞活動之間的InputStream我有一個InputStream
對象如何通過意向
InputStream _fileInput;
我想將它發送到另一個活動,讓我們說:
Intent intent = new Intent(MainActivity.this, ChildActivity.class);
我怎樣才能做到這一點?
傳遞活動之間的InputStream我有一個InputStream
對象如何通過意向
InputStream _fileInput;
我想將它發送到另一個活動,讓我們說:
Intent intent = new Intent(MainActivity.this, ChildActivity.class);
我怎樣才能做到這一點?
無法通過Intent
通過它,既不作爲Extra
(因爲它不是Parcelable
),你可以在你的MainActivity創建一個公共getter
方法,在你ChildActivity
調用它..
示例代碼:
class MainActivity {
private static InputStream mInputStream;
@Override
protected onCreate(...) {
mInputStream = new InputStream(.....);
Intent i = new Intent(MainActivity.this, ChildActivity.class);
startActivity(i);
}
public static getInStream() {
return mInputStream;
}
}
class ChildActivity {
@Override
protected onCreate(...) {
InputStream theInputStream = MainActivity.getInStream();
}
}
恕我直言,這不是最好的解決辦法,但它仍然是東西,以爲我再也過類似活動之間的InputStream ..
如果我能問,爲什麼你需要這個?
你可以使用一個辛格爾頓Helper
類,可以很容易地跟蹤您需要的對象。
類助手將是:
class Helper {
private static Helper mHelper;
private InputStream mInputStream;
private Helper(){
}
public static Helper getInstance() {
if (mHelper != null)
return mHelper;
return new Helper();
}
public void setInputStreamer(InputStream is){
mInputStream = is
}
public InputStream getInputStreamer(){
return mInputStream
}
}
然後在您的MainActivity
電話:
is = new InputStream(...);
Helper.getInstance().setInputStreamer(is);
Intent i = new Intent(MainActivity.this, ChildActivity.class);
startActivity(i);
而在你ChildActivity
電話:
InputStream theInputStream = Helper.getInstance().getInputStreamer();
主要活動是讀取Excel文件(輸入流)和ChildActivity閱讀工作表一個接一個地調用函數來繪製數據。每個模塊都單獨工作,但我在這裏卡住 – Atif
我建議你將這個邏輯保留在活動之外,活動應該只用於**來處理用戶交互。所有不是用戶交互的應該委託給其他組件。我會編寫一個接受文件的類,讀取它並與另一個類交互以讀取表單。比你定義適當的方法來創建你的活動和你的「ExcelReader」類之間的交互 – FredMaggiowski
你好,作爲你的建議我使用上面的技術,即使其成爲一個靜態變量。它返回其他類中的變量,但是當我用它說空值引用。 – Atif