【问题标题】:How to extend Activity in main class that extends "Fragment"?如何在扩展“片段”的主类中扩展 Activity?
【发布时间】:2015-05-24 01:06:58
【问题描述】:

我有一个 Android 项目,我在其中使用 Navigation Drawer,在 MainActivity 中,我有一个开关盒,带有选项和您各自的位置,以便在用户单击时打开。但是,在一个名为 TelaQUEMSOMOS 的类中,那里的参数:

public class TelaQUEMSOMOS extends Fragment {

    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View rootView = inflater.inflate(R.layout.telaquemsomos, container, false);
        return rootView;
    }
}

是从 Fragment 而不是 Activity 扩展的。这很糟糕,因为我需要放一个 Toast.makeText 或 findViewById,而我不能。我该如何处理?

我的项目下载链接(项目为葡萄牙语):https://goo.gl/pm5dIC

【问题讨论】:

  • 为什么不使用 Fragment 中的 'getActivity()'?
  • 还有rootView.findViewById()....

标签: java android android-fragments switch-statement navigation-drawer


【解决方案1】:

在您的片段中,您可以调用getActivity() 来获取活动实例。

【讨论】:

  • 不理解反对票,因为获得活动是 OP 想要的。
【解决方案2】:

请检查下面的代码。首先我们将有一个活动 Home.java

final String[] fragments = {
        "com.locate.Establishment", "com.locate.Settings"};
ActionBarDrawerToggle mDrawerToggle;
DrawerLayout drawer;

public class Home extends Home {
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_home);
   .
   .//your other code here. 
   .
   // Here I am going to call the Fragment called Establishment
   FragmentTransaction tx = getSupportFragmentManager().beginTransaction();
   tx.replace(R.id.main, Fragment.instantiate(Home.this, fragments[0]));
   tx.commit();
   setToolbar(0);
 }
}

片段的实现。这里我要用户支持 Fragment V4。

public class Establishment extends android.support.v4.app.Fragment{
SupportMapFragment mapFragment;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    ViewGroup root = (ViewGroup) inflater.inflate(R.layout.fragment_establishment, null);
    mapFragment = (SupportMapFragment) getChildFragmentManager().findFragmentById(R.id.map);
//Now will able to all you need here. By using getActivity().
}
} 

【讨论】:

  • 有人在拖钓,否则人们通常会告知他们为什么投反对票
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-08-21
  • 1970-01-01
相关资源
最近更新 更多