Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/335.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 在emulator中运行android应用程序时没有布局_Java_Android_Layout_Emulation - Fatal编程技术网

Java 在emulator中运行android应用程序时没有布局

Java 在emulator中运行android应用程序时没有布局,java,android,layout,emulation,Java,Android,Layout,Emulation,因此,我有以下代码: package com.example.ponto_2d; import android.app.Activity; import android.view.Menu; import android.view.MotionEvent; import android.widget.TextView; public class MainActivity extends Activity { pontos p1=new pontos(); pontos p2=new pont

因此,我有以下代码:

package com.example.ponto_2d;

import android.app.Activity;
import android.view.Menu;
import android.view.MotionEvent;
import android.widget.TextView;

public class MainActivity extends Activity {
pontos p1=new pontos();
pontos p2=new pontos();

            @Override
            public boolean onTouchEvent(MotionEvent event) {

                TextView tv1 = (TextView) findViewById(R.id.textView2);

                   int eventaction= event.getAction();

                   switch (eventaction){
                   case MotionEvent.ACTION_DOWN:
                       p1.x=event.getX();
                       break;   

                   }

                   tv1.setText(""+p1.x);

                   return true;
            }


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }

}
这一类:

package com.example.ponto_2d;

public class pontos {
        public double x,y;


        public double distancia(pontos p2){

            return Math.sqrt((p2.x-x)*(p2.x-x) + (p2.y-y)*(p2.y-y));
        }
}
此xml布局:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="38dp"
        android:text="@string/titulo_app"
        android:textAppearance="?android:attr/textAppearanceLarge" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"
        android:layout_marginBottom="30dp"
        android:layout_toRightOf="@+id/textView1"
        android:text="@string/valor"
        android:textAppearance="?android:attr/textAppearanceSmall" />

    <TextView
        android:id="@+id/textView3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/textView2"
        android:layout_alignBottom="@+id/textView2"
        android:layout_alignRight="@+id/textView1"
        android:text="@string/distancia_1"
        android:textAppearance="?android:attr/textAppearanceMedium" />


</RelativeLayout>

我认为这没关系,但是当我运行模拟器时,我什么也没有得到,甚至连一个按钮都没有。
知道问题出在哪里吗?

您的活动中没有
onCreate()
方法。在该方法中,您需要调用
setContentView()
并传入xml布局的资源id。应该可以开始了。

您没有onCreate()方法,因此没有真正启动的功能。onCreate()是Java中与main()相当的android版本。尝试使用:

public class MainActivity extends Activity {
pontos p1=new pontos();
pontos p2=new pontos();


    @Override
    public void onCreate(Bundle bundle) {
        super.onCreate(bundle);
        setContentView(R.layout.<yourXMLFile>);
    }
            @Override
            public boolean onTouchEvent(MotionEvent event) {

                TextView tv1 = (TextView) findViewById(R.id.textView2);

                   int eventaction= event.getAction();

                   switch (eventaction){
                   case MotionEvent.ACTION_DOWN:
                       p1.x=event.getX();
                       break;   

                   }

                   tv1.setText(""+p1.x);

                   return true;
            }


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }

}
公共类MainActivity扩展活动{
pontos p1=新pontos();
pontos p2=新pontos();
@凌驾
创建公共void(Bundle){
super.onCreate(bundle);
setContentView(右布局);
}
@凌驾
公共布尔onTouchEvent(运动事件){
TextView tv1=(TextView)findViewById(R.id.textView2);
int eventaction=event.getAction();
开关(事件操作){
case MotionEvent.ACTION\u DOWN:
p1.x=event.getX();
打破
}
tv1.setText(“+p1.x”);
返回true;
}
@凌驾
公共布尔onCreateOptions菜单(菜单){
getMenuInflater().充气(R.menu.activity\u主菜单);
返回true;
}
}

替换为xml布局文件的名称,减去扩展名。

太好了!非常感谢,我的坏蛋:你应该接受其中一个答案,并将这个问题从未回答的标签中删除。太好了!非常感谢,我的坏朋友:D