Не удалось получить или установить значение edittext из отдельного класса OnClickListener с помощью Android Studio 3 - PullRequest
0 голосов
/ 24 мая 2018

Используя eclipse, я смог получить значение edittext из отдельного класса onclicklistener, но после того, как я перенес тот же стиль кода в Android Studio 3, edittxt возвращает пустой здесь мой код

public class MainActivity extends AppCompatActivity {
Button btnGenerate;

private static final String TAG = MainActivity.class.getSimpleName();
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    //getting the generate_btn actually works
    btnGenerate = findViewById(R.id.generate_btn);
    btnGenerate.setOnClickListener(new OnClickListenerGenerate());
   }
 }

И воткласс OnClickListener

public class OnClickListenerGenerate implements View.OnClickListener {
EditText second_digit;
private static  final String TAG = OnClickListenerGenerate.class.getSimpleName();

@Override
public void onClick(View view) {
      final Context context = view.getRootView().getContext();
     LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
     final View formElementsView = inflater.inflate(R.layout.activity_main, null, false);
     second_digit = formElementsView.findViewById(R.id.txtSecondDigit);

     //returns empty
     Log.d(TAG, ">>" + second_digit.getText().toString());
  }
 }

1 Ответ

0 голосов
/ 06 июня 2018

Я нашел ответ по этой ссылке Android :: findViewByID - как я могу получить представление TextView через прослушиватель другого элемента пользовательского интерфейса? и теперь он работает.

class ButtonListener implements android.view.View.OnClickListener {
public void onClick(View v) {
    View parent = (View)v.getParent();
    if (parent != null) {
        TextView txtView = parent.findViewById(R.id.mytextview);
        txtView.setText(...);
    }
  }
}
...