2015-06-30 30 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; 
    } 
} 
相關問題