2015-06-30 28 views
1

我想在udacity中通过google的android编程课程(android studio)学习android编程。 问题是我的MainActivity.java中没有“PlaceholderFragment”类。 我在这个文件中只有MainActivity类。 任何人都可以帮助我吗?MainActivity.java中没有PlaceholderFragment类

编辑: 我MainActivity.java是:

public class MainActivity extends ActionBarActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
    } 


    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.menu_main, menu); 
     return true; 
    } 

    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     // Handle action bar item clicks here. The action bar will 
     // automatically handle clicks on the Home/Up button, so long 
     // as you specify a parent activity in AndroidManifest.xml. 
     int id = item.getItemId(); 

     //noinspection SimplifiableIfStatement 
     if (id == R.id.action_settings) { 
      return true; 
     } 

     return super.onOptionsItemSelected(item); 
    } 
} 
+2

请张贴代码。这是我们能够帮助你的唯一方式,并且表明了努力。我注意到你很长一段时间都是会员。请阅读教程@ http://stackoverflow.com/tour。你通过阅读获得很少的代表点。 –

+0

你应该澄清你想要做什么。如果你只需要一个Fragemt,有很多简单的方法来做到这一点。 Android Studio可能会在过去自动添加一个名为PlaceholderFragment的Fragment。 – FlanschiFox

+0

它存在于'MainActivityFragment.java'中,名称出现在'main_activity.xml'中 –

回答

4

我在使用Udacity课程“开发Android应用:Android基础知识”时遇到了同样的问题。 Udacity视频大于9个月,而且由于android工作室一直在更新,android studio的新版本不再为片段提供内部类。相反,android studio会生成一个包含片段的单独类。但是,没问题。

转到第1课的标签:“使用阳光Github上库”,打开链接:Udacity阳光库

下载分支:“1.01_hello_world”,内容导入到Android的工作室。您将在MainActivity.java中拥有“PlaceholderFragment”类,然后您可以在Udacity继续课程

1

您需要阅读一个良好的网页。我建议您阅读并研究Google的@Fragments中的代码。从网页 代码片段:

public static class ExampleFragment extends Fragment { 
    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) { 
     // Inflate the layout for this fragment 
     return inflater.inflate(R.layout.example_fragment, container, false); 
    } 
} 

ExampleFragment fragment = new ExampleFragment(); 
fragmentTransaction.add(R.id.fragment_container, fragment); 
fragmentTransaction.commit(); 

注:ExampleFragment可能是你的 “PlaceholderFragment”。

0

只需在MainActivity.java文件中删除代码,然后将其替换为下面的代码即可。

import android.app.Fragment; 
import android.os.Bundle; 
import android.support.design.widget.FloatingActionButton; 
import android.support.design.widget.Snackbar; 
import android.support.v7.app.AppCompatActivity; 
import android.support.v7.widget.Toolbar; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.view.ViewGroup; 

public class MainActivity extends AppCompatActivity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
    setSupportActionBar(toolbar); 

    FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); 
    fab.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG) 
        .setAction("Action", null).show(); 
     } 
    }); 
} 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.menu_main, menu); 
    return true; 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    // Handle action bar item clicks here. The action bar will 
    // automatically handle clicks on the Home/Up button, so long 
    // as you specify a parent activity in AndroidManifest.xml. 
    int id = item.getItemId(); 

    //noinspection SimplifiableIfStatement 
    if (id == R.id.action_settings) { 
     return true; 
    } 

    return super.onOptionsItemSelected(item); 
} 
public static class PlaceholderFragment extends Fragment { 

    public PlaceholderFragment() { 
    } 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) { 
     View rootView = inflater.inflate(R.layout.fragment_main, container, false); 
     return rootView; 
     } 
    } 
} 
+0

请考虑简要解释为什么这会解决问题。 –

0

当我将“ForecastFragment”类放入它自己的文件后,我遇到了同样的问题。

对我来说,解决问题的方法就是去建设 - 清洁项目。这样做后,它建立得很好。

也许有一些旧的构建文件,寻找placeholderFragment?

0

我有同样的问题,但我试图找出如何使用新的结构。我将代码放在MainActivityFragment.java中,在方法onCreateView中,因为这是新方法。它为我工作。 看看我的最终代码:

public class MainActivityFragment extends Fragment { 

    private ArrayAdapter<String> mForecastAdapter; 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) { 
     View rootView = inflater.inflate(R.layout.fragment_main, container); 

     ArrayList<String> weekForecast = new ArrayList<>(); 

     weekForecast.add("Today - Sunny - 88/63"); 
     weekForecast.add("Tomorrow - Foggy - 70/40"); 
     weekForecast.add("Weds - Cloudy - 72/63"); 
     weekForecast.add("Thurs - Asteroids - 75/65"); 
     weekForecast.add("Fri - Heavy Rain - 65/56"); 
     weekForecast.add("Sat - HELP TRAPPED IN WEATHERSTATION - 60/51"); 
     weekForecast.add("Sun - Sunny - 80/68"); 

     mForecastAdapter = new ArrayAdapter<>(getActivity(), 
       R.layout.list_item_forecast, R.id.list_item_forecast_textview, weekForecast); 

     ListView listView = (ListView) rootView.findViewById(R.id.listview_forecast); 
     listView.setAdapter(mForecastAdapter); 

     //return inflater.inflate(R.layout.fragment_main, container, false); 
     return rootView; 
    } 
} 
相关问题