2016-11-17 5 views
2

Как я могу назначить элемент массива строк для edittext в другом классе, поэтому, когда пользователь в пользовательском режиме меняет edittext, тоже меняется элемент? У меня есть этот код, и, как следствие, я получаю элемент в форме строки edittext по умолчанию (режим дизайнера). Я хочу, чтобы он изменил в то же время изменение пользователем edittext. Помощь Plese. «частная пустота kidaj() {Как я могу назначить элемент массива строк для edittext в другом классе, поэтому, когда пользовательский режим изменяет пользовательский текст, изменяется элемент?

 LayoutInflater factory = getLayoutInflater(); 
     View regisText = factory.inflate(R.layout.activity_moj_recept1, null); 
     EditText user = (EditText) regisText.findViewById(R.id.seees); 
     String usr = user.getText().toString(); 
     recepies[0]=usr; 

И ЭТО Другой класс

private final static String STORETEXT ="storetext.txt"; 
private final static String STORETEXT1="storetext1.txt"; 
private final static String STORETEXT2="storetext2.txt"; 


private EditText txtEditor; 
private EditText txtEditor1; 
private EditText txtEditor2; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_moj_recept1); 
    txtEditor=(EditText)findViewById(R.id.seees); 
    txtEditor1=(EditText)findViewById(R.id.seees1); 
    txtEditor2=(EditText)findViewById(R.id.seees2); 
    readFileInEditor(); 
    readFileInEditor1(); 
    readFileInEditor2(); 

} 
public void saveClicked(View v) { 

    try { 

     OutputStreamWriter out = new OutputStreamWriter(openFileOutput(STORETEXT, 0)); 

     out.write(txtEditor.getText().toString()); 
     out.close(); 

     OutputStreamWriter out1=new OutputStreamWriter(openFileOutput(STORETEXT1, 0)); 

     out1.write(txtEditor1.getText().toString()); 
     out1.close(); 

     OutputStreamWriter out2=new OutputStreamWriter(openFileOutput(STORETEXT2, 0)); 

     out2.write(txtEditor2.getText().toString()); 
     out2.close(); 

     Toast.makeText(this, "RECEPT JE SAČUVAN", Toast.LENGTH_LONG).show(); 

    } 

    catch (Throwable t) { 

     Toast.makeText(this, "Exception: "+t.toString(), Toast.LENGTH_LONG).show(); 

    } 

} 
public void readFileInEditor() 

{ 

    try { 

     InputStream in = openFileInput(STORETEXT); 

     if (in != null) { 

      InputStreamReader tmp = new InputStreamReader(in); 

      BufferedReader reader = new BufferedReader(tmp); 

      String str; 

      StringBuilder buf = new StringBuilder(); 

      while ((str = reader.readLine()) != null) { 

       buf.append(str); 

      } 

      in.close(); 

      txtEditor.setText(buf.toString()); 

     } 

    } 

    catch (java.io.FileNotFoundException e) { 

    } 

    catch (Throwable t) { 

     Toast.makeText(this, "Exception: "+t.toString(), Toast.LENGTH_LONG).show(); 

    } 

} 
public void readFileInEditor1() 

{ 

    try { 

     InputStream in1 = openFileInput(STORETEXT1); 

     if (in1 != null) { 

      InputStreamReader tmp1 = new InputStreamReader(in1); 

      BufferedReader reader1 = new BufferedReader(tmp1); 

      String str1; 

      StringBuilder buf1 = new StringBuilder(); 

      while ((str1 = reader1.readLine()) != null) { 

       buf1.append(str1); 

      } 

      in1.close(); 

      txtEditor1.setText(buf1.toString()); 

     } 

    } 

    catch (java.io.FileNotFoundException e) { 

    } 

    catch (Throwable t) { 

     Toast.makeText(this, "Exception: "+t.toString(), Toast.LENGTH_LONG).show(); 

    } 

} 
public void readFileInEditor2() 

{ 

    try { 

     InputStream in2 = openFileInput(STORETEXT2); 

     if (in2 != null) { 

      InputStreamReader tmp2 = new InputStreamReader(in2); 

      BufferedReader reader2 = new BufferedReader(tmp2); 

      String str2; 

      StringBuilder buf2 = new StringBuilder(); 

      while ((str2 = reader2.readLine()) != null) { 

       buf2.append(str2); 

      } 

      in2.close(); 

      txtEditor2.setText(buf2.toString()); 

     } 

    } 

    catch (java.io.FileNotFoundException e) { 

    } 

    catch (Throwable t) { 

     Toast.makeText(this, "Exception: "+t.toString(), Toast.LENGTH_LONG).show(); 

    } 

} 

}

ответ

2

Если я не получаю неправильно, вы хотите добавить textChangedListener для изменения значения элемента в виде Пользователь изменяет значения в EditText.

Вы можете использовать TextChangedListener здесь:

EditText myEditTextField = new EditText(this); 

myEditTextField.addTextChangedListener(new TextWatcher() { 
     @Override 
     public void beforeTextChanged(CharSequence s, int start, int count, int after) { 

     } 

     @Override 
     public void onTextChanged(CharSequence s, int start, int before, int count) { 

     } 

     @Override 
     public void afterTextChanged(Editable s) { 

     } 
    }); 

Вы можете выполнять задачи в соответствии с вашими потребностями. Он имеет 3 метода:

1.beforeTextChanged

2.onTextChanged

3.afterTextChanged

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

Надеюсь, что эта помощь!

+1

Спасибо за ваш ответ, я пробовал это, но моя попытка не была успешной, может быть, это не решение, или, может быть, я не пробовал это правильно. В любом случае Большое спасибо за ответ –

+0

Он должен был решить вашу проблему (я думал). Я сожалею, если это не так, и ваш приветственный сэр :) @ MilošVukadinović – Swr7der

+0

Хорошо, я понял, что мне нужно назначить получателям [0] этому файлу storetext.txt в другом классе, можете ли вы рассказать мне, как это сделать? –