2013-05-11 1 views
0

Я пытаюсь записать что-то в файле за одну активность и после того, как я попытаюсь прочитать его в другом действии, чтобы показать его. Фактически, пользователь должен ввести номер получателя один раз. После этого, я буду ввести номер этого получателя для него автоматически ...пишите в файл за один актив и прочитайте его в другом действии

я не знаю, где моя ошибка, я пытаюсь со вчерашнего дня ... Большое спасибо за ваш помогает ..

пакет com.example.automatik;

общественный класс AddRecipientNumber расширяет активность {

//On stocke le n° du destinataire (1) 
String FILENAME = "recipientnumber.txt"; 
String mehmet = "mehmetmehmet"; 
FileOutputStream fos; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_add_recipient_number); 
    // Show the Up button in the action bar. 
    setupActionBar(); 

    Button button = (Button)findViewById(R.id.recipientbutton1); 
    button.setOnClickListener(new View.OnClickListener() { 

     @SuppressWarnings("deprecation") 
     @Override 
     public void onClick(final View v) 
     { 
      EditText textA = (EditText)findViewById(R.id.recipientedit1); 
      String a = textA.getText().toString(); 
      EditText textB = (EditText)findViewById(R.id.recipientedit2); 
      String b = textB.getText().toString(); 

      if(a.equals(b)) 
      { 
       //On stocke le n° du destinataire (2) 
       try 
       { 
        fos = openFileOutput(FILENAME, Context.MODE_PRIVATE); 
        fos.write(mehmet.getBytes()); 
        fos.close(); 
       } 
       catch (FileNotFoundException e) { e.printStackTrace(); } 
       catch (IOException e) { e.printStackTrace(); } 

       AlertDialog alertdialog = new AlertDialog.Builder(AddRecipientNumber.this).create(); 
       alertdialog.setMessage("You entered these numbers correctly.\nNow, we will move to the second step!"); 
       alertdialog.setButton("Move", new DialogInterface.OnClickListener() { 

        @Override 
        public void onClick(DialogInterface dialog, int which) 
        { 
         sendMove(v); 
        } 
       }); 
       alertdialog.show(); 
      } 
      else 
      { 
       AlertDialog alertdialog = new AlertDialog.Builder(AddRecipientNumber.this).create(); 
       alertdialog.setMessage("These numbers must be identical. \nPlease try again."); 
       alertdialog.show(); 
      } 
     } 
    }); 
} 

//Une fois que les numéros entrés sont identiques & que l'utilisateur accepte de passer à la 2nde étape, on lance: 
public void sendMove(View v) 
{ 
    Intent intent = new Intent(this, AddMasterNumber.class); 
    startActivity(intent); 
} 

@TargetApi(Build.VERSION_CODES.HONEYCOMB) 
private void setupActionBar() { 
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { 
     getActionBar().setDisplayHomeAsUpEnabled(true); 
    } 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    switch (item.getItemId()) { 
    case android.R.id.home: 
     NavUtils.navigateUpFromSameTask(this); 
     return true; 
    } 
    return super.onOptionsItemSelected(item); 
} 

}

и моя вторая активность:

пакет com.example.automatik;

общественный класс AddMasterNumber расширяет активность {

String finall; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_add_master_number); 
    // Show the Up button in the action bar. 
    //setupActionBar(); 

    //On récupère le n° du destinataire stocké 
    try 
    { 
     FileInputStream in = openFileInput("recipientnumber.txt"); 
     StringBuffer fileContent = new StringBuffer(""); 

     byte[] buffer = new byte[1024]; 

     while(in.read(buffer) != -1) 
     { 
      fileContent.append(new String(buffer)); 
     } 
     in.close(); 
     finall = fileContent.toString(); 
    } 
    catch (FileNotFoundException e) { e.printStackTrace(); } 
    catch (IOException e) { e.printStackTrace(); } 

    TextView text = (TextView)findViewById(R.id.recipienttext3); 
    text.setText(finall); 
} 

@TargetApi(Build.VERSION_CODES.HONEYCOMB) 
private void setupActionBar() { 
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { 
     getActionBar().setDisplayHomeAsUpEnabled(true); 
    } 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    switch (item.getItemId()) { 
    case android.R.id.home: 
     NavUtils.navigateUpFromSameTask(this); 
     return true; 
    } 
    return super.onOptionsItemSelected(item); 
} 

}

+0

после вывода ошибки LogCat. Это покажет, где ошибка. – Neoh

+0

, чего вы хотите достичь. вы не можете использовать sharedpreferences вместо? или вы можете указать класс приложения и доступ туда, где хотите? – qwr

+0

QWR: Я пытаюсь записать файл в одном действии и прочитать его в другом действии ... Например, в моем первом действии пользователь вводит номер получателя, и я сохраняю его для него в своей заявке. После этого, когда пользователю нужно отправить SMS своему другу, я автоматически вводим номер получателя для него ... – d3vpasha

ответ

1

Вам не нужно файлы для того, что вы хотите достичь.

Используйте Intent.putExtra в своих первых Activity и getIntent().getStringExtra(String) в другом.

Edit:

Используйте SharefPreferences вместо: http://developer.android.com/guide/topics/data/data-storage.html#pref

+0

Я знаю, как использовать намерение и т. Д. Но я хотел бы использовать файлы, потому что пользователь должен ввести этот адрес получателя номер, когда он использует это приложение в первый раз. После этого я хотел бы сохранить номер этого получателя и автоматически ввести его в свой EditText и облегчить работу пользователя. – d3vpasha

+0

Intent предназначен для обмена данными между двумя приложениями, но я тоже хотел бы сохранить эти данные. – d3vpasha

+0

@ forgive90 Than SharedPreferences, предложенный QWR, будет по-прежнему проще работать, чем напрямую манипулировать файлами. –

Смежные вопросы