Подтвердить что ты не робот

Как пользовательское представление может получить доступ к своей деятельности?

У меня есть пользовательский вид и вы хотите получить доступ к String, доступному в его действии. Я видел код, который использует getContext() в классе представления, но нет способа получить доступ к String, который был доступен для его активности с помощью намерения. Как сделать строку в активности доступной для ее пользовательского вида?

4b9b3361

Ответ 1

Метод getContext() в классе View возвращает контекст, переданный в его конструкторе. Обычно это действие, которое вы хотите (действие расширяет контекст). Так что это, вероятно, работает для вас:

((Activity)getContext()).someMethod(...);

Ответ 2

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

Вы должны иметь возможность передавать параметры в намерения/действия, используя "putExtra" и "getExtra", например:

В вашей основной деятельности:

 Intent EditDebtActivity = new Intent(getBaseContext(), EditDebt.class);
        EditDebtActivity.putExtra(DbAdapter.KEY_ROWID,dRowID);
        EditDebtActivity.putExtra(DbAdapter.KEY_DEBT, dName);
        EditDebtActivity.putExtra(DbAdapter.KEY_STARTINGAMOUNT, dStartAmount);
        EditDebtActivity.putExtra(DbAdapter.KEY_CURRENTAMOUNT, dCurrentAmount);
        EditDebtActivity.putExtra(DbAdapter.KEY_DUEDATE, dDueDate);
        EditDebtActivity.putExtra(DbAdapter.KEY_INTERESTRATE, dInterestRate);
        EditDebtActivity.putExtra(DbAdapter.KEY_MINPAYMENT, dMinPayment);
        startActivity(EditDebtActivity);

Затем в методе onCreate в вашем новом представлении используйте следующее:

 Bundle extras = getIntent().getExtras();
  dRowID = extras.getLong(DbAdapter.KEY_ROWID);
  String rowidname = extras.getString(DbAdapter.KEY_DEBT);
  currentamount = extras.getDouble(DbAdapter.KEY_CURRENTAMOUNT);
  startingamount = extras.getDouble(DbAdapter.KEY_STARTINGAMOUNT);
  duedate = extras.getInt(DbAdapter.KEY_DUEDATE);

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

См. эту ссылку SO для получения дополнительной информации об использовании putextra и getextra: Отправка массивов с помощью Intent.putExtra

Надеюсь, это поможет, это мой первый вклад обратно в сообщество:)