2017-07-21 9 views
-1

は私が "button.setOnClickListener(本)" でNullPointerExceptionが取得しています CountDownTimerにレイアウトを変更しながら.... "。ここではコードです...あなたのボタンは、おそらくあなたの「R.layout.activity_main」で定義されているCountDownTimerにレイアウトを変更しながら、NullPointerExceptionが取得; sの仕上げ()メソッドの仕上げ()メソッド

package com.example.vikrant.countdowntimer; 

import android.content.Context; 
import android.graphics.Bitmap; 
import android.graphics.BitmapFactory; 
import android.os.AsyncTask; 
import android.os.CountDownTimer; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.text.Layout; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.widget.Button; 
import android.widget.ImageView; 

import java.io.IOException; 
import java.io.InputStream; 
import java.net.HttpURLConnection; 
import java.net.MalformedURLException; 
import java.net.URL; 
import java.util.concurrent.ExecutionException; 

public class MainActivity extends AppCompatActivity implements View.OnClickListener { 

    Button button; 
    ImageView image; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     final Context c = getApplicationContext(); 
     new CountDownTimer(10000,5000){ 

      @Override 
      public void onTick(long millisUntilFinished) { 
       setContentView(R.layout.timer); 
      } 

      @Override 
      public void onFinish() { 
       setContentView(R.layout.activity_main); 
      } 
     }.start(); 

     button = (Button) findViewById(R.id.button); 
     button.setOnClickListener(this); 

    } 

    @Override 
    public void onClick(View v) { 
     String url="https://firebasestorage.googleapis.com/v0/b/fir-assignment-34e5b.appspot.com/o/rangoliA%2Frangolinew.jpg?alt=media&token=4a376937-7fec-420a-a18c-8c9ec7da95af"; 
     image = (ImageView) findViewById(R.id.imageView); 
     DownloadImage downloadImage = new DownloadImage(); 
     Bitmap bitmap; 
     try { 
      bitmap = downloadImage.execute(url).get(); 
      image.setImageBitmap(bitmap); 
     } catch (InterruptedException e) { 
      e.printStackTrace(); 
     } catch (ExecutionException e) { 
      e.printStackTrace(); 
     } 

    } 

    public class DownloadImage extends AsyncTask<String,Void,Bitmap>{ 

     @Override 
     protected Bitmap doInBackground(String... params) { 
      URL url; 
      HttpURLConnection httpURLConnection; 
      try { 
       url = new URL(params[0]); 
       httpURLConnection = (HttpURLConnection) url.openConnection(); 
       httpURLConnection.connect(); 
       InputStream inputStream = httpURLConnection.getInputStream(); 
       Bitmap bitmap = BitmapFactory.decodeStream(inputStream); 
       return bitmap; 

      } catch (Exception e) { 
       e.printStackTrace(); 
       return null; 
      } 

     } 
    } 
} 
+0

タイマーレイアウト/ activity_mainレイアウトでこのボタンを使用できますか?タイマーを終了する前に条件をチェックしてください。 –

+0

このボタンはactivity_main.xmlにありません –

+0

あなたはアンドロイドでスプラッシュ画面を作ろうとしていますか? https://stackoverflow.com/questions/5486789/how-do-i-make-a-splash-screen –

答えて

0

事前に.......私はこれを解決するためのおかげで助けてください。別のコンテンツを設定すると、「findViewById(R.id.button)」はnullを返します(他のレイアウトで定義されていないため)。

なぜレイアウトを変更するのですか?

+0

はい、ボタンはactivity_main.xmlで定義されています....私のアプリが起動すると自動的にレイアウトを変更したい...私はこの例外を取得し、私が欲しいものを行うことはありません任意の方法はありますか? –

+0

あなたはアンドロイドのスプラッシュ画面についてお話していますか? https://stackoverflow.com/questions/5486789/how-do-i-make-a-splash-screen –

+1

はい...ありがとうございます@大衆の王...私の問題を解決するリンク... –

関連する問題