我不知道什么是appcompat v_7,为什么每次创建新项目时都会添加它?

时间:2014-03-15 16:51:15

标签: android

此代码与MainActivity.java的默认代码

有关

有问题要理解,还有另一件事就是fragmentaion_main.xml文件,它可能是另一个buden而不是activity_main.xml,为什么呢?

package com.example.onehello;
import android.support.v7.app.ActionBarActivity;
import android.support.v7.app.ActionBar;
import android.support.v4.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.os.Build;

public class MainActivity extends ActionBarActivity {

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

    if (savedInstanceState == null) {
        getSupportFragmentManager().beginTransaction()
                .add(R.id.container, new PlaceholderFragment()).commit();
    }
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {

    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.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();
    if (id == R.id.action_settings) {
        return true;
    }
    return super.onOptionsItemSelected(item);
}

/**
 * A placeholder fragment containing a simple view.
 */
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;
    }
}

 }

2 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

  

什么是appcompat_v7?

为向后兼容性添加了支持库。 Android有许多版本,每个新版本都会对API进行许多更改。因此,为了使旧版本的Android与为新版本编写的代码兼容,appcompat_v7库非常有用。

  

为什么每次创建新项目时都会添加它?

我假设您正在使用Eclipse IDE进行开发。理想情况下,创建一个appcompat_v7文件夹并使所有项目链接到支持库的该文件夹就足够了。但是,Eclipse中似乎存在一些错误。每次创建新项目时,它都会创建一个新的appcompat_v7文件夹。

  

'fragment_main.xml'就像另一个负担?

Android API 11中引入了Fragment类。它可用于为平板电脑和手机创建不同的布局。利用平板电脑上更大的屏幕,这是一个很好的支持。如果您只想开发智能手机的应用程序,您甚至不必担心它。所以,它更多的是优势而不是负担。

有关片段的更多信息,请转到http://developer.android.com/reference/android/app/Fragment.html