Question

I am a beginner in programming for Android and I have a big problem. Use development environment Eclispe. Creating stopwatch application, but always in my application displays only a black screen. Since the beginning of the creation of the project over my phone is connected via an Android ADB in shows only a black screen. I looked at some threads on this site, but I still do not know what the problem is.

My MainActivity.java file:

package cz.miegl.stopky;

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.SystemClock;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends Activity {

    private TextView textTimer;
    private Button startButton;
    private Button pauseButton;
    private long startTime = 0L;
    private Handler myHandler = new Handler();
    long timeInMillies = 0L;
    long timeSwap = 0L;
    long finalTime = 0L;

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

        textTimer = (TextView) findViewById(R.id.textTimer);

        startButton = (Button) findViewById(R.id.btnStart);
        startButton.setOnClickListener(new View.OnClickListener() {
            public void onClick(View view) {
                startTime = SystemClock.uptimeMillis();
                myHandler.postDelayed(updateTimerMethod, 0);

            }
        });

        pauseButton = (Button) findViewById(R.id.btnPause);
        pauseButton.setOnClickListener(new View.OnClickListener() {
            public void onClick(View view) {
                timeSwap += timeInMillies;
                myHandler.removeCallbacks(updateTimerMethod);

            }
        });

    }

    private Runnable updateTimerMethod = new Runnable() {

        public void run() {
            timeInMillies = SystemClock.uptimeMillis() - startTime;
            finalTime = timeSwap + timeInMillies;

            int seconds = (int) (finalTime / 1000);
            int minutes = seconds / 60;
            seconds = seconds % 60;
            int milliseconds = (int) (finalTime % 1000);
            textTimer.setText("" + minutes + ":"
                    + String.format("%02d", seconds) + ":"
                    + String.format("%03d", milliseconds));
            myHandler.postDelayed(this, 0);
        }

    };

}

My activity_main.xml file:

<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"
    android:background="@android:color/white" >
    <Button

    android:id="@+id/btnPause"
    android:layout_width="90dp"
    android:layout_marginLeft="20dp"
    android:layout_height="45dp"
    android:layout_centerVertical="true"
    android:layout_toRightOf="@+id/btnStart"
    android:text="Pauza" />

    <Button
    android:id="@+id/btnStart"
    android:layout_width="90dp"
    android:layout_height="45dp"

    android:layout_alignParentLeft="true"
    android:layout_centerVertical="true"
    android:layout_marginLeft="68dp"
    android:text="Start" />

    <TextView
    android:id="@+id/textTimer"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_above="@+id/btnPause"
    android:layout_centerHorizontal="true"
    android:layout_marginBottom="37dp"
    android:textSize="40sp"
    android:textColor="#000000"
    android:text="00:00:00" />

</RelativeLayout>

And my AndroidManifest.xml file:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="cz.miegl.stopky"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="19" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="cz.miegl.stopky.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

Please help me. I do not know what to do. Thank you!

Please HELP ME!!! Thanks!

Was it helpful?

Solution

You have a framelayout in your activity_main.xml file. This is a placeholder for another view, and therfore does not show anything. Normally you would use this view when you are using fragments. You are however not using fragments.

Since you are a beginner copy the entire content from fragment_main into the activity_main.xml file.

OTHER TIPS

Right now it looks like you're mixing the main activity and the main fragment together. I'm still new to fragments, but I'm pretty sure that in your activity's OnCreate, you want to call

setContentView(R.id.activity_main)

and then in activity_main.xml, reference the fragment.

Check out the fragment programming guide at http://developer.android.com/guide/topics/fundamentals/fragments.html

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top