34

カスタム ビューがあり、そのアクティビティで使用できる String にアクセスしたいと考えています。ビュー クラスでを使用するコードを見てきましgetContext()たが、インテントを介してそのアクティビティで使用できるようになった String にアクセスする方法はありません。アクティビティの文字列をカスタム ビューで使用できるようにする方法は?

4

2 に答える 2

42

View クラスの getContext() メソッドは、コンストラクターに渡されたコンテキストを返します。通常、それは必要なアクティビティです (アクティビティはコンテキストを拡張します)。したがって、これはおそらくあなたのために働くでしょう:

ジャワ:

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

コトリン:

(context as? Activity)?.someMethod(...)
于 2011-10-12T20:56:50.577 に答える
-8

私はまだ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);

ここでは明らかに独自のコードを使用していますが、ユーザーがボタンをクリックすると、行情報を新しいアクティビティに渡しています。

putextra と getextra の使用に関する詳細については、この SO リンクを参照してください: Sending array with Intent.putExtra

これがお役に立てば幸いです。これは、コミュニティへの私の最初の貢献です:)

于 2011-10-12T20:15:59.700 に答える