我想在我的活動內創建一個InputStream。它創建得很好,但我試圖將創建的InputStream傳遞給我實際上想要使用InputStream的類。 InputStream在我的活動的onClick方法內創建。第二我嘗試將InputStream對象傳遞給我的「工作類」中的一個方法,我得到一個NullPointerException。我不想在我的活動中做這項工作。我如何傳遞InputStream或者AssetManager對象來處理它。我的「工人階級」不擴展或實施任何事情。應該是?傳遞InputStream到不同的類,並得到一個空指針異常
public class MainActivity extends ListActivity {
private DbManagement mdbManager;
private TestProcessor tp;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_lookup);
mdbManager = new DbManagement(this);
mdbManager.open();
fillData();
Button testingCsv =(Button)findViewById(R.id.btnTestCsv);
testingCsv.setOnClickListener(ChokeSlam);
testPopulate_Tests();
}
private OnClickListener ChokeSlam = new OnClickListener(){
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
AssetManager aM = getAssets();
InputStream ipNext = null;
InputStreamReader iprNext = null;
try{
//ipNext = aM.open("Book1.csv");
//CSVReader reader = new CSVReader(new InputStreamReader(ipNext));
//iprNext = new InputStreamReader(ipNext);
//tp.ProcessInboundStream(ipNext);
tp.ProcessInboundStream(aM,"Book1.csv");
ipNext.close();
//tp.ProcessInboundStream(new InputStream(ipNext));
}
catch(Exception ex){
System.out.println(ex.toString());
}
}
};
public class TestProcessor {
private DbManagement mdbManager;
private final Context mctx;
public TestProcessor(Context ctx) {
// TODO Auto-generated constructor stub
this.mctx = ctx;
}
public void ProcessInboundStream(AssetManager aM,String fileName){
InputStream ipNext = null;
try{
ipNext = aM.open(fileName);
CSVReader reader = new CSVReader(new InputStreamReader(ipNext));
ipNext.close();
//tp.ProcessInboundStream(new InputStream(ipNext));
}
catch(Exception ex){
System.out.println(ex.toString());
}
}
}
此說明是不夠的,請添加代碼。 –
如果你想傳遞對象到另一個活動,你需要使用'Parcelable'或'Serializable'。 – BlackHatSamurai
它是不是另一個活動,它是我想用來實際處理數據的類 – user579426