Android 是否可以从不使用';t使用布局';什么内容?
我有一个Android 是否可以从不使用';t使用布局';什么内容?,android,Android,我有一个RecyclerViewAdapter类和两个布局文件,选择语言.xml和RecyclerViewList\u项目.xml choose\u language布局包含回收器视图对象的声明和两个其他视图、一个文本视图和一个按钮 <TextView android:id="@+id/chooseLanguageTextView" android:layout_marginTop="20dp" android:layout_cent
RecyclerViewAdapter
类和两个布局文件,选择语言.xml
和RecyclerViewList\u项目.xml
choose\u language
布局包含回收器视图对象的声明和两个其他视图、一个文本视图和一个按钮
<TextView
android:id="@+id/chooseLanguageTextView"
android:layout_marginTop="20dp"
android:layout_centerInParent="true"
android:layout_alignParentTop="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/chooseYourLanguage"
android:textColor="@color/black"
android:textSize="20sp" />
<android.support.v7.widget.RecyclerView
android:id="@+id/recyclerView"
android:layout_centerInParent="true"
android:scrollbars="vertical"
android:layout_width="300dp"
android:layout_height="350dp"/>
<Button
android:id="@+id/okButton"
android:background="@drawable/button_background_3"
android:layout_centerInParent="true"
android:layout_alignParentBottom="true"
android:layout_marginBottom="20dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/ok"/>
语言选项和语言代码如下所示:
String[] langOptions = {"English","हिंदी","ગુજરતી","मराठी","বাঙালি","ਪੰਜਾਬੀ","ಕನ್ನಡ","தமிழ்","తెలుగు"};
String[] langCode = {"en","hi","gu","mr","bn","pa","kn","ta","te"};
您可以为此使用
接口
,以进行此类交互
public interface IMethodCaller {
void yourDesiredMethod();
}
Context
public AdapterName(Context context, ...) {
this.mContext = context;
//.. other code
}
onClick()
中写入以下代码:
if (mContext instanceof YourActivityName) {
((YourActivityName)mContext).yourDesiredMethod();
}
活动
中,从yourDesiredMethod()
方法更改TextView&按钮的文本请随时询问任何进一步的澄清。您可以使用
界面进行此类交互
创建一个接口:
public interface IMethodCaller {
void yourDesiredMethod();
}
在您的活动中实现这个接口(它引用了TextView和Button),调用ChangeLanguage方法()
在适配器的构造函数中创建参数Context
public AdapterName(Context context, ...) {
this.mContext = context;
//.. other code
}
在适配器中的onClick()
中写入以下代码:
if (mContext instanceof YourActivityName) {
((YourActivityName)mContext).yourDesiredMethod();
}
在活动
中,从yourDesiredMethod()
方法更改TextView&按钮的文本
有关示例,请参阅
请随时要求进一步澄清。否。您不能从没有对UI元素引用的类访问UI元素。布局中的UI组件通过编程方式或使用任何数据绑定机制
绑定到应用程序中的类。这些类包含对这些UI元素的引用。因此,您尝试的方法是不正确的。
您可以通过两种方式实现相同的功能:回调
或本地广播管理器
1-回调可以使用接口创建。因此,点击单选按钮,您可以触发回调,该回调将执行您想要的操作。您可以在回调的参数中传递所需的数据
2-可使用本地广播管理器
,单击单选按钮将触发该管理器。然后在onReceive(上下文、意图)
中,您可以执行所需的操作。触发LocalBroadcast
时使用intent传递数据。在您的情况下,您将从适配器
类触发广播
,它将在片段
或活动
类中接收 否。您不能从没有对UI元素引用的类访问UI元素。布局中的UI组件通过编程方式或使用任何数据绑定机制
绑定到应用程序中的类。这些类包含对这些UI元素的引用。因此,您尝试的方法是不正确的。
您可以通过两种方式实现相同的功能:回调
或本地广播管理器
1-回调可以使用接口创建。因此,点击单选按钮,您可以触发回调,该回调将执行您想要的操作。您可以在回调的参数中传递所需的数据
2-可使用本地广播管理器
,单击单选按钮将触发该管理器。然后在onReceive(上下文、意图)
中,您可以执行所需的操作。触发LocalBroadcast
时使用intent传递数据。在您的情况下,您将从适配器
类触发广播
,它将在片段
或活动
类中接收 非常感谢你帮助我。我是Android Studio的新手,所以我不知道这是否可能直接实现。非常感谢您对我的帮助。我是Android Studio的新手,所以我不知道这是否可能直接实现。谢谢你对我的帮助。我是一个初学者,因此好奇谢谢你对我的帮助。我是初学者,因此好奇