Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android OnActivityResult将数据传递到另一个表单并从中获取数组结果_Android_Onactivityresult - Fatal编程技术网

Android OnActivityResult将数据传递到另一个表单并从中获取数组结果

Android OnActivityResult将数据传递到另一个表单并从中获取数组结果,android,onactivityresult,Android,Onactivityresult,我想将一些数据发送到另一个活动,比如SecondActivity,然后使用OnActivityResult将数组数据从该SecondActivity发送到主活动 这是一个类似于当我按下上传按钮时,我已经有了路径,我想将该路径发送到另一个活动,然后在数组中从另一个活动获取结果到同一个mainactivity,然后想在textview中查看该数组 CSVUpload public class CSVUploader extends Activity { Button btnUpload;

我想将一些数据发送到另一个活动,比如SecondActivity,然后使用OnActivityResult将数组数据从该SecondActivity发送到主活动

这是一个类似于当我按下上传按钮时,我已经有了路径,我想将该路径发送到另一个活动,然后在数组中从另一个活动获取结果到同一个mainactivity,然后想在textview中查看该数组

CSVUpload

public class CSVUploader extends Activity {
    Button btnUpload;
    EditText txtName;
    EditText txtMessageName;
    Bundle extras = getIntent().getExtras();
    String FullPath = extras.getString("FullPath");
    @Override
    protected void onCreate(Bundle savedInstanceState) {

    try{
    File csvfile = new File(FullPath);
    FileInputStream csvStream = new FileInputStream(csvfile);
    BufferedReader in = new BufferedReader(new InputStreamReader(csvStream));
    String line;
    String[] name = null;
    String[] number = null;
    int iCount=0;
            while ((line = in.readLine()) != null){
                String[] RowData = line.split(",");
                name[iCount] = RowData[0];
                number[iCount] = RowData[1];
                iCount++;
/*                  ContentValues values = new ContentValues();
                values.put(key, value);
                values.put(CsvProvider.NUMBER, number);
                values.put("status",status);
                getContentResolver().insert(CsvProvider.CONTENT_URI, values);
*/              }
            in.close();
            Bundle b =new Bundle();
            Intent intent = new Intent();
            b.putStringArray("name", name);
            b.putStringArray("number", number);
            intent.putExtras(b);
            setResult(RESULT_OK, intent);
            finish();


    }
    catch(Exception e)
    {
        e.printStackTrace();
    }
    }

}
第一个活动

  public void uploadfile(View view){
        edittext = (EditText)findViewById(R.id.txtFile);
        Toast.makeText(NewMessage.this, FullPath, 2000).show();
        if(FullPath != null)
        {
        Intent intent1 = new Intent(this, CSVUploader.class);
        intent1.putExtra("FullPath", FullPath);
        startActivityForResult(intent1, 2);     
        }
        else
        {
            Toast.makeText(NewMessage.this, "No File Selected", 2000).show();
        }
    }

 // Listen for results.
    public void onActivityResult(int requestCode, int resultCode, Intent data){
        // See which child activity is calling us back.
        super.onActivityResult(requestCode, resultCode, data);


        if (requestCode == REQUEST_PATH){
                if (resultCode == RESULT_OK) { 
                    curPathName = data.getStringExtra("GetPath"); 
                    curFileName = data.getStringExtra("GetFileName");
                    FullPath = curPathName+"/"+curFileName;
                    edittext.setText(curFileName);
    /*              Toast.makeText(NewMessage.this, resId, duration);*/
                }
             }

        if (requestCode==2){
            if (resultCode == RESULT_OK) {
                Bundle b=this.getIntent().getExtras();
                String[] name=b.getStringArray("name");
                String[] number=b.getStringArray("number");
                String[] status;
            }
        }

尝试使用此代码。我不确定这是否能正常工作

MainActivity.java

   Bundle b=new Bundle();
        Intent i = new Intent(this,MainActivity.class);
        b.putStringArray("name",name); 
        b.putStringArray("number",number) 
         i.putExtras(b);
         startActivity(i);
公共无效上载文件(视图){

}

同样地替换代码

CSVUploader.java

   Bundle b=new Bundle();
        Intent i = new Intent(this,MainActivity.class);
        b.putStringArray("name",name); 
        b.putStringArray("number",number) 
         i.putExtras(b);
         startActivity(i);
您可以在MainActivity.java中检索它

 Bundle b=this.getIntent().getExtras();
 String[] name=b.getStringArray("name");
  String[] number=b.getStringArray("number");

您需要将检索代码放在onCreate中,而不是放在现在的位置

 @Override
    protected void onCreate(Bundle savedInstanceState) {     
      String FullPath = getIntent().getStringExtra("FullPath");

顺便问一下,为什么要使用其他活动来完成任务。你为什么不在同一个活动中做呢。

看看这个。即
requestCode
,传递一个整数值。嘿,你现在能看一下代码吗,这样你就可以得到我想要的代码了。我想检索一个数组,它是CSV上传器之类的东西。不能使用它,因为putExtra只针对一个字符串,而不是一个数组。实际上,我有两个数组要检索运行时出现的错误没有运行时错误,它向我显示了替换一些其他的方法我做了一些改变…试着在你的代码中使用这些改变是的,你是对的,但我只是想要一个简单的视图让我试试你的建议