0
嘿傢伙我試圖從第三方應用程序導出數據,然後將結果導出的文件的路徑設置爲我的textview主活動。但它不工作。我搜索了所有並得出一個結論,認爲它與匿名課程有關,但我仍然無法修復它。任何人都可以引導我。從匿名內部類設置外部類變量
public class MyActivity extends Activity
{
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
final Button btRecieve = (Button) findViewById(R.id.btRecieve);
final Context context = this.getApplicationContext();
final TextView tvFilePath = (TextView) findViewById(R.id.tvFilepath);
final TextView tvFeedBack = (TextView) findViewById(R.id.tvFeedBack);
final String pDateFrom = "2012-07-01";
final String pDateTo = "2012-07-06";
final String pExportType = "e5";
final String pExportFormat = "csv";
btRecieve.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
TimeRecordingExport exporter = new TimeRecordingExport(pDateFrom,pDateTo,pExportType,pExportFormat,tvFilePath);
exporter.Export(context);
String path = exporter.getFilePath();
tvFilePath.setText(path);
}
});
}
}
public class TimeRecordingExport{
//private variables
String mDateFrom;
String mDateTo;
String mExportType;
String mExportFormat;
private String mFilepath; //path to the output file
String feedback;
TextView mTv;
File file;
Context mContext;
final String KEY_RESULT_FILE = "com.dynamicg.timerecording.FILE";
//Constructor
public TimeRecordingExport(String pDateFrom,String pDateTo,String pExportType,String pExportFormat,TextView tv){
//Initialize private variables
mDateFrom = pDateFrom;
mDateTo = pDateTo;
mExportFormat = pExportFormat;
mExportType = pExportType;
mTv = tv;
} //End constructor
//Export function
public void Export(Context pContext){
mContext = pContext;
//create a new intent with action export
Intent intent = new Intent("com.dynamicg.timerecording.DATA_EXPORT");
//Add extra values or you could say parameters to this intent.
intent.putExtra("com.dynamicg.timerecording.DATE_FROM",mDateFrom);
intent.putExtra("com.dynamicg.timerecording.DATE_TO",mDateTo);
intent.putExtra("com.dynamicg.timerecording.EXPORT_TYPE",mExportType);
intent.putExtra("com.dynamicg.timerecording.EXPORT_FORMAT",mExportFormat);
//make a broadcast reciever
BroadcastReceiver resultReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent resultIntent) {
Bundle bundle = this.getResultExtras(true);
TimeRecordingExport.this.mFilepath = bundle.getString(KEY_RESULT_FILE); //Path to the created file
//mTv.setText(mFilepath[0]);
file = new File(mFilepath); //New Created file
feedback = "File=["+file+"], canRead=["+file.canRead() //Info about the created file
+"], sizeKB=["+(file.length()/1024)+"]";
//Toast.makeText(mContext, feedback, Toast.LENGTH_LONG).show();
Toast.makeText(context, feedback, Toast.LENGTH_LONG).show();
System.out.println(feedback);
}
};
mContext.sendOrderedBroadcast(intent, null, resultReceiver, null, Activity.RESULT_OK, null, null);
} //End function export
public String getFilePath(){
return mFilepath;
}
public String getFileInfo(){
return feedback;
}
} //End of class
定義「不工作」。 – 2012-07-05 22:18:59
不工作意味着,textview不會顯示文件的路徑。當我將texview.setText()放入匿名類「Broadcastreciever」中時,它起作用。 – user1505293 2012-07-05 22:22:40