小编Ank*_*kit的帖子

我应该用什么来代替 getWidth() 和 getHeight() 来知道什么时候宽度更大,什么时候高度更大

import android.app.Fragment;
import android.app.FragmentManager;
import android.app.FragmentTransaction;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Display;
import android.view.WindowManager;

public class MainActivity extends AppCompatActivity {

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


        FragmentManager fm=getFragmentManager();
        FragmentTransaction ft= fm.beginTransaction();


        WindowManager wm= getWindowManager();
        Display d=wm.getDefaultDisplay();

        if (d.getWidth()>d.getHeight())
        {
            Fragment1 f1 = new Fragment1();
            ft.replace(android.R.id.content, f1);
        }
        else
        {
            Fragment2 f2 = new Fragment2();
            ft.replace(android.R.id.content, f2);
        }
    ft.commit();
    }
}
Run Code Online (Sandbox Code Playgroud)

我试图使用Android的碎片和希望显示fragment1在显示器的宽度大于显示器的高度和更大fragment2时显示的高度比显示器的宽度,但使用时更大getWidth()getHeight()机器人工作室是说,这些方法depricated。那么如何知道什么时候宽度更大,什么时候高度更大呢?

android window-managers fragment fragmentmanager display

8
推荐指数
1
解决办法
1110
查看次数

java中的instanceOf运算符

为什么Java中的这行代码不能打印消息?

System.out.println("a instanceof String:"+a instanceof String);
Run Code Online (Sandbox Code Playgroud)

为什么它只是打印真实而不是之前的字符串???

java instanceof

4
推荐指数
1
解决办法
240
查看次数

Java类和接口名称冲突

interface A
{
void print();
}


class A implements A
{

public void print()
{
System.out.println("Hello");
}

public static void main(String args[])
{
A a=new A();
a.print();
}

}
Run Code Online (Sandbox Code Playgroud)

当我使用此代码时,它说"重复的类:A".为什么这样?我可以没有相同的类和接口名称

java interface class

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

如何比较StringBuffer对象的相等性

 String s="";
StringBuffer sb2=new StringBuffer("hi"); 
StringBuffer sb3=new StringBuffer(sb2);
    StringBuffer sb4=sb3;

    if(sb2.equals(sb3))
    {
        System.out.println("sb2.equals(sb3):"+sb2.equals(sb3));
        s+="2 ";
    }


    if(sb3.equals(sb4))
    {
        System.out.println("sb3.equals(sb4):"+sb3.equals(sb4));
        s+="3 ";
    }
Run Code Online (Sandbox Code Playgroud)

为什么首先是if给出false而第二个给出true,因为s2,s3,s4都是StringBuffer对象而String Buffer没有equal()方法?

java stringbuffer

0
推荐指数
1
解决办法
128
查看次数