我有一个自定义视图,并希望访问其活动中可用的字符串。我已经看到getContext()
在视图类中使用的代码,但是没有方法可以访问通过意图对其活动可用的字符串。如何使活动中的字符串对其自定义视图可用?
问问题
19609 次
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 链接:使用 Intent.putExtra发送数组
希望这会有所帮助,这是我对社区的第一次贡献:)
于 2011-10-12T20:15:59.700 回答