我正在处理碎片并遇到两件事情Activity
,FragmentActivity
并且已经使用了好几次.我想知道这两者之间有什么区别,因为当我改变Activity
时FragmentActivity
,它对应用程序没有任何影响.
android android-fragments android-fragmentactivity android-support-library
FirstActivity.Java
有一个FragmentA.Java
电话startActivityForResult()
.
SecondActivity.Java
打电话,finish()
但onActivityResult
永远不会被写入FragmentA.Java
.
FragmentA.Java
码:
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
// some code
Intent i = new Intent(getActivity(), SecondActivity.class);
i.putExtra("helloString", helloString);
getActivity().startActivityForResult(i, 1);
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
getActivity();
if(requestCode == 1 && resultCode == Activity.RESULT_OK) {
//some code
}
}
Run Code Online (Sandbox Code Playgroud)
SecondActivity.Java
码:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//some code
Intent returnIntent = new Intent();
returnIntent.putExtra("result", …
Run Code Online (Sandbox Code Playgroud) 我想在我的ViewPager中添加3个底部点,就像这样.
我使用FragmentActivity并支持库ViewPager.
user-interface android android-viewpager viewpagerindicator android-fragmentactivity
我的问题是除了明显的继承差异之外,Fragment
和之间的主要区别是FragmentActivity
什么?每个班级最适合哪些场景?我试图理解为什么这两个类都存在......
我有一个FragmentActivity,我想在其中使用一个地图片段.我在获取支持片段管理器访问它时遇到问题.
if (googleMap == null) {
googleMap = ((SupportMapFragment) getSupportFragmentManager()
.findFragmentById(R.id.map1)).getMap();
// check if map is created successfully or not
if (googleMap == null) {
Toast.makeText(getApplicationContext(),
"Sorry! unable to create maps", Toast.LENGTH_SHORT)
.show();
}
}
// create marker
MarkerOptions marker = new MarkerOptions().position(
new LatLng(latitude, longitude)).title("Hello Maps ");
CameraPosition cameraPosition = new CameraPosition.Builder()
.target(new LatLng(latitude, longitude)).zoom(15).build();
googleMap.animateCamera(CameraUpdateFactory
.newCameraPosition(cameraPosition));
// adding marker
googleMap.addMarker(marker);
Run Code Online (Sandbox Code Playgroud) android android-fragments android-fragmentactivity android-support-library fragmentmanager
我无法在FragmentPagerAdapter中重用片段.使用destroyItem()方法,它正在删除片段,但仍然没有再次调用getItem().只有2-3个图像所以我使用FragmentPagerAdapter而不是FragmentStatePagerAdapter ..
public class ExamplePagerAdapter extends FragmentPagerAdapter {
ArrayList < String > urls;
int size = 0;
public ExamplePagerAdapter(FragmentManager fm, ArrayList < String > res) {
super(fm);
urls = res;
size = urls.size();
}
@Override
public int getCount() {
if (urls == null) {
return 0;
} else {
return size;
}
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
FragmentManager manager = ((Fragment) object).getFragmentManager();
FragmentTransaction trans = manager.beginTransaction();
trans.remove((Fragment) object);
trans.commit();
}
@Override
public Fragment getItem(int …
Run Code Online (Sandbox Code Playgroud) 我刚刚升级到Android Studio 0.2.8,当我尝试编辑运行配置时收到"默认活动未找到"的错误.
当我启动Android Studio时,我收到此错误"仅允许从事件调度线程访问"
我正在使用的活动是片段活动.
到目前为止,我已经尝试重建并使缓存/重启无效.两者都没用.
请让我知道我可以做些什么来解决问题.
我是Android新手.我想用标签格式构建一个应用程序.我发现许多文档Activity
已被使用.在许多情况下也使用过FragmentActivity
.我不确定哪个更好开始.请建议我应该使用Activity
或FragmentActivity
以标签格式开始开发?
在我的主FragmentActivity
菜单中,我设置了这样的自定义ActionBar
标题:
LayoutInflater inflator = (LayoutInflater) this
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View v = inflator.inflate(R.layout.custom_titlebar, null);
TextView tv = (TextView) v.findViewById(R.id.title);
Typeface tf = Typeface.createFromAsset(this.getAssets(),
"fonts/capsuula.ttf");
tv.setTypeface(tf);
tv.setText(this.getTitle());
actionBar.setCustomView(v);
Run Code Online (Sandbox Code Playgroud)
这很完美.但是,一旦我打开其他Fragments
,我希望标题改变.我不知道如何访问Main Activity
来做到这一点?在过去,我这样做了:
((MainFragmentActivity) getActivity()).getSupportActionBar().setTitle(
catTitle);
Run Code Online (Sandbox Code Playgroud)
有人可以就正确的方法提出建议吗?
XML:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/transparent" >
<TextView
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginLeft="5dp"
android:ellipsize="end"
android:maxLines="1"
android:text=""
android:textColor="#fff"
android:textSize="25sp" />
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud) android android-fragments android-actionbar android-fragmentactivity
我有2个片段,两个片段都有一个按钮.当我按下按钮时,我想开始一个新的活动.但我无法让它发挥作用.
我得到的错误:ERROR here:类型不匹配:无法从mFragmentFavorite转换为Fragment
我究竟做错了什么?
MyFragmentPagerAdapter
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
public class MyFragmentPagerAdapter extends FragmentPagerAdapter{
final int PAGE_COUNT = 3;
/** Constructor of the class */
public MyFragmentPagerAdapter(FragmentManager fm) {
super(fm);
}
/** This method will be invoked when a page is requested to create */
@Override
public Fragment getItem(int arg0) {
switch(arg0){
case 0:
return new FavoriteActivity();
//ERROR: Type mismatch: cannot convert from FavoriteActivity to Fragment
case 1:
return new SettingsActivity();
default:
return null;
}
}
/** …
Run Code Online (Sandbox Code Playgroud) android android-fragments android-activity android-fragmentactivity
android ×10