当我尝试在静态类中调用非静态方法时,我收到错误.
无法从类型回放中对非静态方法methodName()进行静态引用
我不能使方法静态,因为这也给我一个错误.
此静态方法无法从xInterface隐藏实例方法
有没有办法在另一个静态方法中调用非静态方法?(这两种方法分别是单独的包和单独的类).
我在Android Fragments Dev Guide中看到,"活动可以通过使用findFragmentById()或从FragmentManager获取对片段的引用来调用片段中的方法findFragmentByTag()".
下面的示例显示了如何获取片段引用,但不显示如何调用片段中的特定方法.
任何人都可以举例说明如何做到这一点?我想从父Activity调用片段中的特定方法.谢谢.
我试图从Fragment屏幕调用一个方法中的方法.
我有一个名为myMethod()的方法,它位于一个名为MyActivity的活动中; 我有一个名为Screen1Fragment的片段.
我想从Screen1Fragment中调用MyActivity.myMethod(),但我不知道该怎么做.
以前Screen1Fragment是一个活动,因此我扩展了MyActivity,以便我可以直接调用myMethod().但我不得不将活动更改为片段以滑动标签使用.
提前致谢.
android android-fragments android-activity android-fragmentactivity
ViewPager2 does not support direct child views
Run Code Online (Sandbox Code Playgroud)
我尝试使用以下代码在片段之间进行转换,但在使用 viewpager2 时出现上述错误。
调用片段 1 转换到片段 2:
getFragmentManager().beginTransaction().replace(R.id.viewPager2, new q2_fragment()).addToBackStack(null).commit();
Run Code Online (Sandbox Code Playgroud)
主布局中的 Viewpager2 XML:
<androidx.viewpager2.widget.ViewPager2
android:id="@+id/viewPager2"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="10"
android:orientation="horizontal"
android:scaleType="fitXY" />
Run Code Online (Sandbox Code Playgroud)
Main 中的实例化:
final ViewPager2 viewPager2 = findViewById(R.id.viewPager2);
viewPager2.setAdapter(new QuestionsActivity.ScreenSlidePagerAdapter(this));
viewPager2.setUserInputEnabled(false);
Run Code Online (Sandbox Code Playgroud)
如何使用 viewpager2 避免此错误?
我正在使用片段,我在片段中有一个编辑文本,我想在主要活动中获得价值。
\n\n这是我的片段布局
\n\n<?xml version="1.0" encoding="utf-8"?>\n<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"\n android:layout_width="match_parent"\n android:layout_height="match_parent"\n android:orientation="vertical"\n android:background="#878787" >\n\n <TextView android:layout_width="fill_parent"\n android:layout_height="wrap_content"\n android:gravity="center"\n android:text="dfgdfgdf"\n android:textSize="20dp"\n android:layout_centerInParent="true"\n android:id="@+id/user_name"/>\n\n <EditText\n android:id="@+id/message"\n android:layout_width="fill_parent"\n android:layout_height="wrap_content"\n />\n\n <Button \n android:text="G\xc3\xb6nder"\n android:layout_width="fill_parent"\n android:layout_height="wrap_content"\n android:onClick="getFromUser"\n android:layout_marginTop="40dp"\n />\n\n</RelativeLayout>\nRun Code Online (Sandbox Code Playgroud)\n\n我正在使用此函数加载片段:
\n\npublic void startChat(JsonObject user) {\n FrameLayout layout = (FrameLayout)findViewById(R.id.container);\n layout.setVisibility(View.VISIBLE); \n Bundle bundle = new Bundle();\n bundle.putString("name", user.get("name").getAsString());\n sendTo=user.get("username").getAsString();\n FragmentManager fragmentManager = getSupportFragmentManager();\n FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();\n ConversationFragment conv = new ConversationFragment();\n conv.setArguments(bundle);\n fragmentTransaction.add(R.id.container, conv);\n fragmentTransaction.commit();\n viewPager.setVisibility(View.GONE);\n actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);\n actionBar.setDisplayHomeAsUpEnabled(true);\n\n}\nRun Code Online (Sandbox Code Playgroud)\n\n这是我的片段类
\n\npublic …Run Code Online (Sandbox Code Playgroud) 由于Android WebRTC客户端示例中的重大变化,我正在寻找代码示例,该示例演示如何在Android中添加和使用DataChannel.我需要通过DataChannel在2个Android设备之间发送"Hello Worlds".这是旧代码:
它使用了新版本中不存在的一些类和接口.
那么我如何才能将DataChannel的支持添加到我的Android WebRTC应用程序中,通过它发送和接收文本?
我有一个片段类,我想在我的活动的"主"类中调用一个方法.片段类是静态的,因此可能是导致问题的原因,尽管我必须保持静态.我希望能够从我的静态类中做到这样的事情:
Method();
我已经尝试过:
getActivity().Method();
虽然这不起作用.我该怎么办?
我想做的就是调用Fragment类的函数.但我似乎无法找到一种方法来访问ViewPager中我的片段的实例.
我的活动的xml:
<android.support.v4.view.ViewPager xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" />
Run Code Online (Sandbox Code Playgroud)
没有这样我不能调用findFragmentById()(可以吗?)我也不知道给findFragmentByTag()提供什么,它总是返回null:/