我写了一个在两个片段之间切换的虚拟活动.当您从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) 我无法让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) 我必须为仍在运行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) 有没有办法让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区域,但没有一个选项看起来合适......它不是我要排除的前缀或后缀.这是内心的下划线.
所以我的应用程序中有一个活动,当前标记为
android:launchMode="singleTop"
Run Code Online (Sandbox Code Playgroud)
...我目前在onCreate和onNewIntent中都有逻辑,以确保屏幕始终显示由启动的最新Intent提供的数据.而且我希望能够根据Intent提供的数据在Holo.Light和Holo.Dark之间进行切换.
调用setTheme不起作用(请参阅以下两个链接):
第二个链接有一个解决方法,涉及创建第二个AndroidManifest.xml条目,该条目具有另一个主题并指向相关活动的空子类.这有效,但它会破坏singleTop(因为现在堆栈上有两个活动实例).
我没有想法.有人知道除了为这个活动滚动我自己的自定义ActionBar视图之外还有什么方法可以做到这一点吗?