Я пытаюсь создать таймер обратного отсчета для своей деятельности. Всякий раз, когда я пытаюсь запустить приведенный ниже код, появляется ошибка. Я покажу логарифм для получения дополнительной информации об ошибке.Исключение исключения Runtime и исключение Null Pointer при попытке создать таймер обратного отсчета в android
02-16 18:12:07.535: E/AndroidRuntime(550): FATAL EXCEPTION: main
02-16 18:12:07.535: E/AndroidRuntime(550): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.onlineauction/com.example.onlineauction.Placed_Product_Details}: java.lang.NullPointerException
02-16 18:12:07.535: E/AndroidRuntime(550): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1569)
Есть еще несколько ошибок в logcat, но из-за ограничения пространства я пропускаю его. Я не знаю, какова возможная ошибка для этого таймера обратного отсчета. Мне нужно запустить таймер обратного отсчета, как только это действие будет запущено. Может кто-нибудь, пожалуйста, помогите мне.
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.concurrent.TimeUnit;
import android.os.Bundle;
import android.os.CountDownTimer;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Intent;
import android.util.Log;
import android.view.Menu;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
@SuppressLint("SimpleDateFormat")
public class Placed_Product_Details extends Activity {
TextView timerv=(TextView)findViewById(R.id.timer);
public timer tim;
Intent i=getIntent();
final String productbiddate=i.getStringExtra("productbiddate");
final String productplaceddate=i.getStringExtra("productplaceddate");
TextView pbid=(TextView)findViewById(R.id.pbid);
TextView pplaced=(TextView)findViewById(R.id.pplaced);
SimpleDateFormat sdf=new SimpleDateFormat("dd-MMM-yy hh:mm:ss aa");
@SuppressLint("SimpleDateFormat")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_placed__product__details);
try
{
// Converting the two string dates into date time format and comparing the dates
Date dt1=sdf.parse(productbiddate);
Date dt2=sdf.parse(productplaceddate);
int val=dt1.compareTo(dt2);
if(val>0)
{
long diff=Math.abs(dt1.getTime()-dt2.getTime());
long seconds=(TimeUnit.MILLISECONDS.toSeconds(diff))%60;
long minutes=(TimeUnit.MILLISECONDS.toMinutes(diff))%60;
long hours=(TimeUnit.MILLISECONDS.toHours(diff))%24;
long days = TimeUnit.MILLISECONDS.toDays(diff);
//here I'm trying to start my timer in my activity.
tim=new timer(diff, 1000);
tim.start();
}
pbid.setText("Bid Ends On: "+productbiddate);
pplaced.setText("Product Was Placed For Bidding On: "+productplaceddate);
}
catch(Exception e)
{
Log.d("Exception:",e.toString());
}
}
public class timer extends CountDownTimer
{
public timer(long millisInFuture, long countDownInterval) {
super(millisInFuture, countDownInterval);
// TODO Auto-generated constructor stub
}
@Override
public void onFinish() {
// TODO Auto-generated method stub
}
@Override
public void onTick(long millisUntilFinished) {
// TODO Auto-generated method stub
long seconds=(TimeUnit.MILLISECONDS.toSeconds(millisUntilFinished))%60;
long minutes=(TimeUnit.MILLISECONDS.toMinutes(millisUntilFinished))%60;
long hours=(TimeUnit.MILLISECONDS.toHours(millisUntilFinished))%24;
long days = TimeUnit.MILLISECONDS.toDays(millisUntilFinished);
timerv.setText("Time Remaining: "+days+" days "+hours+" hours "+hours+" minutes "+minutes+" seconds "+seconds);
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.placed__product__details, menu);
return true;
}
}
Есть ли другая ошибка в моем коде, кроме вышеупомянутой ошибки ?? – njnjnj
@ user1547124 запустите его, и если у вас есть какие-либо сообщения обновленный код fullstacktrace – Raghunandan
@ user1547124 он исправлен ?? – Raghunandan