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();
    }
    
  • 在您的活动中实现这个接口(它引用了TextView和Button),调用ChangeLanguage方法()

  • 在适配器的构造函数中创建参数
    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的新手,所以我不知道这是否可能直接实现。谢谢你对我的帮助。我是一个初学者,因此好奇谢谢你对我的帮助。我是初学者,因此好奇