2014-07-29 1 views
0

Я хочу послать некоторые данные других деятельности говорят SecondActivity, а затем получить данные массива от того, SecondActivity с основной деятельностью с использованием OnActivityResultAndroid OnActivityResult передачи данных в другую форму и получить результат массива из него

Этим приложение, как, когда я нажимаю кнопку загрузки я уже путь я хочу, чтобы отправить этот путь к другой деятельности, а затем получить результат в массиве от другой деятельности в том же 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(); 
    } 
    } 

} 

FirstActivity

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; 
      } 
     } 
+0

Проверьте это http://techblogon.com/android-start-activity-for-result-example/. Это 'requestCode', передает целочисленное значение. – Aniruddha

+0

Эй вы можете посмотреть на код сейчас, так что вы получите именно то, что я хочу – Kirtesh

+0

Coz Я хочу, чтобы получить массив его CSV-загрузчик вид вещи – Kirtesh

ответ

0

пытаются использовать этот код. Я не уверен, что это будет работать должным образом

MainActivity.java

общественного недействительными uploadfile (View вид) {

Intent intent1 = new Intent(this, CSVUploader.class);  
intent1.putExtra("FullPath", FullPath);   
startActivity(intent1); 

}

Заменить код также

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); 

Вы можете retrive его в MainActivity.java, как

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

Не используйте это как putExtra для одной строки, а не для массива – Kirtesh

+0

I сделанное редактирование в коде ... – user3506595

+0

Могу ли я посмотреть на мое редактирование в вопросе сейчас, пожалуйста, – Kirtesh

0

Вам нужно поместить код извлечения в OnCreate вместо того, где у вас есть сейчас.

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

Кстати, почему вы хотите использовать другое действие для выполнения задачи. Почему бы вам не сделать это в одной и той же деятельности.

+0

Да вы право, но я просто хочу, чтобы простой вид для него позволил мне попробовать ваше предложение – Kirtesh