我正在尝试学习如何在android中实现片段。因此,我在activity_main中创建了两个按钮和一个片段。xml。如果我点击第一个按钮,片段1应该充气,同样,如果我点击第二个按钮,片段2应该充气。
但是问题是它没有替换片段。当我调试代码时,在View.class中执行clecle()方法返回false。
LogCat中也没有错误。
我无法找出代码的问题。
这里是主要活动。xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<Button
android:id="@+id/button1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/fragment1" />
<Button
android:id="@+id/button2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/fragment2" />
<fragment
android:id="@+id/fragment_place"
android:name="com.example.myfragmentwithbuttonapp.FragmentTwo"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
这是fragment_one.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="#00ffff">
<TextView
android:id="@+id/textView1"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:text="@string/thisisfragment1"
android:textStyle="bold" />
</LinearLayout>
这是fragment_two.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="#ffff00">
<TextView
android:id="@+id/textView2"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="@string/thisisfragment2"
android:textStyle="bold" />
</LinearLayout>
这是一个碎片。JAVA
package com.example.myfragmentwithbuttonapp;
import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
public class FragmentOne extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater,
ViewGroup container, Bundle savedInstanceState) {
//Inflate the layout for this fragment
return inflater.inflate(
R.layout.fragment_one, container, false);
}
}
这是两个片段。JAVA
package com.example.myfragmentwithbuttonapp;
import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
public class FragmentTwo extends Fragment{
@Override
public View onCreateView(LayoutInflater inflater,
ViewGroup container, Bundle savedInstanceState) {
// Inflate the layout for this fragment
return inflater.inflate(
R.layout.fragment_two, container, false);
}
}
以下是主要活动。JAVA
package com.example.myfragmentwithbuttonapp;
import android.app.Activity;
import android.app.Fragment;
import android.app.FragmentManager;
import android.app.FragmentTransaction;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class MainActivity extends Activity {
Fragment fr;
FragmentManager fm;
FragmentTransaction fragmentTransaction;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button1 = (Button) findViewById(R.id.button1);
Button button2 = (Button) findViewById(R.id.button2);
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
fr = new FragmentOne();
fm = getFragmentManager();
fragmentTransaction = fm.beginTransaction();
fragmentTransaction.replace(R.id.fragment_place, fr);
fragmentTransaction.commit();
}
});
button2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
fr = new FragmentTwo();
fm = getFragmentManager();
fragmentTransaction = fm.beginTransaction();
fragmentTransaction.replace(R.id.fragment_place, fr);
fragmentTransaction.commit();
}
});
}
}
我希望我已经能够解释这个问题。
感谢任何帮助。
谢谢
用于零碎交易。replace()您需要为片段和片段本身指定一个容器。容器是将保存片段的父视图。典型的框架布局。
现在,您正在传递R.id.fragment_place作为容器,但该id指的是片段,而不是片段容器。
在活动区。xml,替换:
<fragment
android:id="@+id/fragment_place"
android:name="com.example.myfragmentwithbuttonapp.FragmentTwo"
android:layout_width="match_parent"
android:layout_height="match_parent" />
与:
<FrameLayout
android:id="@+id/fragment_place"
android:layout_width="match_parent"
android:layout_height="match_parent" />
这样很好用。剩下的代码就可以了。
我正在尝试通过xpath,css,ID...但什么都管用。 我总是得到错误:没有这样的元素:无法定位元素 我添加了一个明确的等待,但它仍然不起作用。 你能帮帮我吗? 单选按钮
我试图用硒点击“下一页”按钮,但没有成功。我使用了正确的CSS选择器还是应该把它换成别的东西?
我正在尝试使用Java Selenium Web驱动程序单击弹出窗口中的“保存”按钮,但是它会引发异常 消息:元素当前不可见,因此可能不会与命令持续时间交互 我可以看到“保存”按钮在我的弹出窗口中处于活动状态。我不知道它抛出异常的原因。 我正在尝试单击的“保存”按钮的 HTML 代码, firepath:html/body/div[6]/div/div/div/dir[2]/div/div//bu
问题内容: HTML代码: 使用类名,我试图单击按钮,但无法单击。 我尝试了以下代码: 问题答案: 您可以尝试通过获取它。据我所记得,这只是一堂课。
问题内容: 我正在使用Java学习Selenium Webdriver。作为一个学习示例,我尝试打开MakeMyTrip,访问“ 国际航班”页面,然后单击Google Chrome中的“ 单向” 单选按钮。我尝试了其他方法来定位此单选按钮,但仍无法正常工作。请在我的代码示例下面找到。 谁能帮我解决这个问题? 问题答案: 使用以下代码:- 享受..如果仍然遇到任何问题,请与我联系:)