小编Eri*_*ric的帖子

添加到后台堆栈时,如何维护片段状态?

我写了一个在两个片段之间切换的虚拟活动.当您从FragmentA转到FragmentB时,FragmentA会被添加到后台堆栈中.但是,当我返回FragmentA(通过按回)时,会创建一个全新的FragmentA,并且它所处的状态将丢失.我感觉我跟这个问题一样,但我已经包含了一个完整的代码示例来帮助解决问题:

public class FooActivity extends Activity {
  @Override public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    final FragmentTransaction transaction = getFragmentManager().beginTransaction();
    transaction.replace(android.R.id.content, new FragmentA());
    transaction.commit();
  }

  public void nextFragment() {
    final FragmentTransaction transaction = getFragmentManager().beginTransaction();
    transaction.replace(android.R.id.content, new FragmentB());
    transaction.addToBackStack(null);
    transaction.commit();
  }

  public static class FragmentA extends Fragment {
    @Override public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
      final View main = inflater.inflate(R.layout.main, container, false);
      main.findViewById(R.id.next_fragment_button).setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
          ((FooActivity) getActivity()).nextFragment();
        }
      });
      return main;
    } …
Run Code Online (Sandbox Code Playgroud)

android android-fragments back-stack

150
推荐指数
6
解决办法
13万
查看次数

TextView.setText中未显示Unicode字符

我无法让TextView正确地动态显示unicode字符,这让我感到沮丧.我已将其剥离到最低限度,但由setText填充的TextView仍会在其中显示带有问号的钻石,用于unicode字符.从strings.xml填充的版本完美地显示了多字节字符.这是活动:

public class TestMultibyteActivity extends Activity
{
  /** Called when the activity is first created. */
  @Override
  public void onCreate( Bundle savedInstanceState )
  {
    super.onCreate( savedInstanceState );
    setContentView( R.layout.main );
    TextView textField = (TextView) findViewById( R.id.text_field );
    String str = "Tübingen systemportefølje";
    Log.d( "MULTIBYTE", str ); //note that this prints the multibyte chars correctly.
    //EDIT: oh crap, no it doesn't.  might be onto something here...
    textField.setText( str );
  }
}
Run Code Online (Sandbox Code Playgroud)

这是布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:orientation="vertical"
              android:layout_width="fill_parent"
              android:layout_height="fill_parent">
  <TextView …
Run Code Online (Sandbox Code Playgroud)

android

39
推荐指数
3
解决办法
6万
查看次数

如何在Mac OS X上获得JDK 1.5

我必须为仍在运行JDK 1.5的遗留应用程序编写一些代码.不幸的是,看起来OS X实际上并没有安装1.5 JDK; 它只是链接到1.6:

/System/Library/Frameworks/JavaVM.framework/Versions $ ls -l
lrwxr-xr-x  1 root  wheel    5 Apr 26 11:53 1.3 -> 1.3.1
drwxr-xr-x  3 root  wheel  102 Feb 11 15:33 1.3.1
lrwxr-xr-x  1 root  wheel   10 Apr 26 11:53 1.4 -> CurrentJDK
lrwxr-xr-x  1 root  wheel   10 Apr 26 11:53 1.4.2 -> CurrentJDK
lrwxr-xr-x  1 root  wheel   10 Apr 26 11:53 1.5 -> CurrentJDK
lrwxr-xr-x  1 root  wheel   10 Apr 26 11:53 1.5.0 -> CurrentJDK
lrwxr-xr-x  1 root  wheel    5 Apr 26 …
Run Code Online (Sandbox Code Playgroud)

java macos

23
推荐指数
4
解决办法
4万
查看次数

IntelliJ:为名称中带下划线的字段生成getter/setter

有没有办法让IntelliJ更聪明地生成它的getter/setter?特别是,如果字段名称中有下划线,那么getter是否可以将它们剥离并转换为CamelCase?

例如,我希望下面的getter是getCarneAsada():

public class Taco {
  private String carne_asada;

  public String getCarne_asada() {
    return carne_asada;
  }
}
Run Code Online (Sandbox Code Playgroud)

我找到了该Code Style->Java->Code Generation区域,但没有一个选项看起来合适......它不是我要排除的前缀或后缀.这是内心的下划线.

intellij-idea

9
推荐指数
2
解决办法
8451
查看次数

更改singleTop活动的主题

所以我的应用程序中有一个活动,当前标记为

android:launchMode="singleTop"
Run Code Online (Sandbox Code Playgroud)

...我目前在onCreateonNewIntent中都有逻辑,以确保屏幕始终显示由启动的最新Intent提供的数据.而且我希望能够根据Intent提供的数据在Holo.Light和Holo.Dark之间进行切换.

调用setTheme不起作用(请参阅以下两个链接):

第二个链接有一个解决方法,涉及创建第二个AndroidManifest.xml条目,该条目具有另一个主题并指向相关活动的空子类.这有效,但它会破坏singleTop(因为现在堆栈上有两个活动实例).

我没有想法.有人知道除了为这个活动滚动我自己的自定义ActionBar视图之外还有什么方法可以做到这一点吗?

android actionbarsherlock android-actionbar

5
推荐指数
1
解决办法
1187
查看次数