Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/190.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么要将常量传递到Bundle对象putString()方法中?_Java_Android - Fatal编程技术网

Java 为什么要将常量传递到Bundle对象putString()方法中?

Java 为什么要将常量传递到Bundle对象putString()方法中?,java,android,Java,Android,我正在看一个教程,不明白他为什么决定通过常数。数据传递到的下一个活动中会生成相同的常量,为什么会这样?到目前为止,我所知道的常数的唯一用途是pi和其他数学常数 ListActivity.java public class ListActivity extends AppCompatActivity implements DerpAdapter.ItemClickCallback { private static final String BUNDLE_EXTRAS = "BUNDLE_EXTRA

我正在看一个教程,不明白他为什么决定通过常数。数据传递到的下一个活动中会生成相同的常量,为什么会这样?到目前为止,我所知道的常数的唯一用途是pi和其他数学常数

ListActivity.java

public class ListActivity extends AppCompatActivity implements DerpAdapter.ItemClickCallback {
private static final String BUNDLE_EXTRAS = "BUNDLE_EXTRAS";
private static final String EXTRA_QUOTE = "EXTRA_QUOTE";
private static final String EXTRA_ATTR = "EXTRA_ATTR";

private RecyclerView recyclerView;
private DerpAdapter adapter;
private ArrayList listData;

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

    listData = (ArrayList) DerpData.getListData();

    recyclerView = (RecyclerView) findViewById(R.id.rec_list);
    //LayoutManager controls if you are using Linear, staggard etc. It controls the views.
    recyclerView.setLayoutManager(new LinearLayoutManager(this));

    adapter = new DerpAdapter(DerpData.getListData(), this);
    recyclerView.setAdapter(adapter);
    adapter.setItemClickCallback(this);
}

@Override
public void onItemClick(int p) {
    ListItem item = (ListItem) listData.get(p);

    Intent i = new Intent(this, DetailActivity.class);

    Bundle extras = new Bundle();
    extras.putString(EXTRA_QUOTE, item.getTitle());
    extras.putString(EXTRA_ATTR, item.getSubTitle());
    i.putExtra(BUNDLE_EXTRAS, extras);

    startActivity(i);
}


@Override
public void onSecondaryIconClick(int p) {
    ListItem item = (ListItem) listData.get(p);
    //update our data
    if (item.isFavourite()){
        item.setFavourite(false);
    } else {
        item.setFavourite(true);
    }
    //pass new data to adapter and update
    adapter.setListData(listData);
    adapter.notifyDataSetChanged();
}
public class DetailActivity extends AppCompatActivity {
private static final String BUNDLE_EXTRAS = "BUNDLE_EXTRAS";
private static final String EXTRA_QUOTE = "EXTRA_QUOTE";
private static final String EXTRA_ATTR = "EXTRA_ATTR";


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

    Bundle extras = getIntent().getBundleExtra(BUNDLE_EXTRAS);

    ((TextView)findViewById(R.id.lbl_quote_text)).setText(extras.getString(EXTRA_QUOTE));
    ((TextView)findViewById(R.id.lbl_quote_attribution)).setText(extras.getString(EXTRA_ATTR));
}
DetailActivity.java

public class ListActivity extends AppCompatActivity implements DerpAdapter.ItemClickCallback {
private static final String BUNDLE_EXTRAS = "BUNDLE_EXTRAS";
private static final String EXTRA_QUOTE = "EXTRA_QUOTE";
private static final String EXTRA_ATTR = "EXTRA_ATTR";

private RecyclerView recyclerView;
private DerpAdapter adapter;
private ArrayList listData;

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

    listData = (ArrayList) DerpData.getListData();

    recyclerView = (RecyclerView) findViewById(R.id.rec_list);
    //LayoutManager controls if you are using Linear, staggard etc. It controls the views.
    recyclerView.setLayoutManager(new LinearLayoutManager(this));

    adapter = new DerpAdapter(DerpData.getListData(), this);
    recyclerView.setAdapter(adapter);
    adapter.setItemClickCallback(this);
}

@Override
public void onItemClick(int p) {
    ListItem item = (ListItem) listData.get(p);

    Intent i = new Intent(this, DetailActivity.class);

    Bundle extras = new Bundle();
    extras.putString(EXTRA_QUOTE, item.getTitle());
    extras.putString(EXTRA_ATTR, item.getSubTitle());
    i.putExtra(BUNDLE_EXTRAS, extras);

    startActivity(i);
}


@Override
public void onSecondaryIconClick(int p) {
    ListItem item = (ListItem) listData.get(p);
    //update our data
    if (item.isFavourite()){
        item.setFavourite(false);
    } else {
        item.setFavourite(true);
    }
    //pass new data to adapter and update
    adapter.setListData(listData);
    adapter.notifyDataSetChanged();
}
public class DetailActivity extends AppCompatActivity {
private static final String BUNDLE_EXTRAS = "BUNDLE_EXTRAS";
private static final String EXTRA_QUOTE = "EXTRA_QUOTE";
private static final String EXTRA_ATTR = "EXTRA_ATTR";


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

    Bundle extras = getIntent().getBundleExtra(BUNDLE_EXTRAS);

    ((TextView)findViewById(R.id.lbl_quote_text)).setText(extras.getString(EXTRA_QUOTE));
    ((TextView)findViewById(R.id.lbl_quote_attribution)).setText(extras.getString(EXTRA_ATTR));
}

因为如果不使用常量,它可能会在某个时候变得混乱。我不是说这个例子,但这些变量应该是公共的,并且应该根据您的设计一次性写入DetailActivity或ListActivity。易于使用、易于记忆、易于修改和清理代码