2016-09-03 43 views
0

所以這是我的代碼,它實現了一個天文臺,以我的應用程序:爲什麼當我啓動我的應用程序時,我的xmlFile無法顯示?

import android.content.Context; 
import android.os.SystemClock; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 
import android.widget.Chronometer; 
import android.widget.LinearLayout; 
import android.widget.Toast; 

public class MainActivity extends AppCompatActivity { 
    Chronometer mChronometer; 

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


     LinearLayout layout = new LinearLayout(this); 
     layout.setOrientation(LinearLayout.VERTICAL); 
     layout.isBaselineAligned(); 

     mChronometer = new Chronometer(this); 

     // Set the initial value 
     mChronometer.setText("00:10"); 
     layout.addView(mChronometer); 

     Button startButton = new Button(this); 
     startButton.setText("Start"); 
     startButton.setOnClickListener(mStartListener); 
     layout.addView(startButton); 

     Button stopButton = new Button(this); 
     stopButton.setText("Stop"); 
     stopButton.setOnClickListener(mStopListener); 
     layout.addView(stopButton); 

     Button resetButton = new Button(this); 
     resetButton.setText("Reset"); 
     resetButton.setOnClickListener(mResetListener); 
     layout.addView(resetButton); 

     setContentView(layout); 
    } 

    private void showElapsedTime() { 
     long elapsedMillis = SystemClock.elapsedRealtime() - mChronometer.getBase(); 
     Toast.makeText(MainActivity.this, "Elapsed milliseconds: " + elapsedMillis, 
       Toast.LENGTH_SHORT).show(); 
    } 

    View.OnClickListener mStartListener = new View.OnClickListener() { 
     public void onClick(View v) { 
      int stoppedMilliseconds = 0; 

      String chronoText = mChronometer.getText().toString(); 
      String array[] = chronoText.split(":"); 
      if (array.length == 2) { 
       stoppedMilliseconds = Integer.parseInt(array[0]) * 60 * 1000 
         + Integer.parseInt(array[1]) * 1000; 
      } else if (array.length == 3) { 
       stoppedMilliseconds = Integer.parseInt(array[0]) * 60 * 60 * 1000 
         + Integer.parseInt(array[1]) * 60 * 1000 
         + Integer.parseInt(array[2]) * 1000; 
      } 

      mChronometer.setBase(SystemClock.elapsedRealtime() - stoppedMilliseconds); 
      mChronometer.start(); 
     } 
    }; 

    View.OnClickListener mStopListener = new View.OnClickListener() { 
     public void onClick(View v) { 
      mChronometer.stop(); 
      showElapsedTime(); 
     } 
    }; 

    View.OnClickListener mResetListener = new View.OnClickListener() { 
     public void onClick(View v) { 
      mChronometer.setBase(SystemClock.elapsedRealtime()); 
      showElapsedTime(); 
     } 
    }; 
} 

的問題是雖然,當我開始我的應用程序,我在XML文件中所做的一切,也不會在顯示應用程序,我能看到的所有東西都是天文鐘和它的按鈕。我是否覆蓋了java文件中的xml文件或類似的東西? 在我的xml文件中,我使用ScrollView作爲rootView,如果以任何方式。

謝謝你, 朱利安。 setContentView(layout); 所以:

+0

發佈你的佈局xml – SripadRaj

+0

你已經寫了setContentView(layout);因此它會將當前視圖設置爲您已定義的佈局,以便它不會顯示您之前指定的xml文件,以在側滾動視圖中顯示並排除此佈局首先創建滾動視圖的實例,然後在滾動視圖中添加布局 – Vickyexpert

+0

如何在scrollView中添加布局?我必須將兩個參數放入setContentView() - 方法還是有更好的方法?謝謝你的回答! – Julian

回答

0

都在你的類要添加(R.layout.activity_main)到您的視圖,並在上創建方法再次要添加一個佈局,以你的觀點是這樣結束的第一你好覆蓋你的觀點....這就是爲什麼你的佈局不可見.....刪除動態視圖或通過在你的XML文件中創建一個佈局添加布局到該視圖,所以它會工作.......希望我會幫你的....;

+0

啊,我看到了錯誤,謝謝!那我怎麼把這兩個結合起來呢?還是有更有效的方法? – Julian

+0

抱歉,遲到的迴應,但根據您的問題,如果你想添加動態創建的佈局到你的Scrollview然後創建一個Linearlayout/Relativelayout,然後創建該佈局的實例和動態視圖到該佈局..然後你就完成了... @朱利安 –

相關問題