Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/218.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 局部变量可能尚未初始化_Java_Android_Timepicker - Fatal编程技术网

Java 局部变量可能尚未初始化

Java 局部变量可能尚未初始化,java,android,timepicker,Java,Android,Timepicker,问题: 我有一个时间选择器,我想用它来保存长/字符串“分钟”的值,它表示当前时间和时间选择器选择的时间之间的总分钟数 例如:如果当前为7:30,用户选择8:30,则将60分钟保存为分钟值 我已经成功实现了以下源代码(如下所示),但是我收到了一些错误,说明: "The local variable tp may not have been initialized" 使用下面评论中建议的方法-尽管我严格按照说明操作 编译器问题: Description Resource Path Lo

问题:

我有一个时间选择器,我想用它来保存长/字符串“分钟”的值,它表示当前时间和时间选择器选择的时间之间的总分钟数

例如:如果当前为7:30,用户选择8:30,则将60分钟保存为分钟值

我已经成功实现了以下源代码(如下所示),但是我收到了一些错误,说明:

"The local variable tp may not have been initialized"
使用下面评论中建议的方法-尽管我严格按照说明操作

编译器问题:

Description Resource    Path    Location    Type
The local variable tp may not have been initialized AddEditDevice.java      line 119    Java Problem
The local variable tp may not have been initialized AddEditDevice.java      line 120    Java Problem
资料来源:

import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.ViewGroup;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.FrameLayout;
import android.widget.TextView;
import android.widget.TimePicker;
import java.text.DecimalFormat;
import android.util.Log;
import java.util.Calendar;

public class AddEditDevice extends Activity {

     private long rowID; 
     private EditText nameEt;
     private EditText capEt;
     private EditText codeEt;
     private TimePicker timeEt;
     private TextView ssidTextView;
     Calendar cal = Calendar.getInstance();
     TimePicker tp;


      // @Override
       public void onCreate(Bundle savedInstanceState) 
       {
          super.onCreate(savedInstanceState); 
          setContentView(R.layout.add_country);
          WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
          WifiInfo info = wifi.getConnectionInfo();
          String ssidString = info.getSSID();

          if (ssidString.startsWith("\"") && ssidString.endsWith("\"")){
              ssidString = ssidString.substring(1, ssidString.length()-1);
 }

          //TextView ssidTextView = (TextView) findViewById(R.id.wifiSSID);
          ssidTextView = (TextView) findViewById(R.id.wifiSSID);
          ssidTextView.setText(ssidString); 

          nameEt = (EditText) findViewById(R.id.nameEdit);
          capEt = (EditText) findViewById(R.id.capEdit);
          codeEt = (EditText) findViewById(R.id.codeEdit);
          timeEt = (TimePicker) findViewById(R.id.timeEdit);






          Bundle extras = getIntent().getExtras(); 

          if (extras != null)
          {
             rowID = extras.getLong("row_id");
             nameEt.setText(extras.getString("name"));  
             capEt.setText(extras.getString("cap"));  
             codeEt.setText(extras.getString("code"));    
             String time = extras.getString("time");
             String[] parts = time.split(":");
             timeEt.setCurrentHour(Integer.valueOf(parts[0]));
             timeEt.setCurrentMinute(Integer.valueOf(parts[1]));
             timeEt.setIs24HourView(false);


          }

          Button saveButton =(Button) findViewById(R.id.saveBtn);
          saveButton.setOnClickListener(new OnClickListener() {

              public void onClick(View v) 
              {
                 if (nameEt.getText().length() != 0)
                 {
                    AsyncTask<Object, Object, Object> saveContactTask = 
                       new AsyncTask<Object, Object, Object>() 
                       {
                          @Override
                          protected Object doInBackground(Object... params) 
                          {
                             saveContact();
                             return null;
                          }

                          @Override
                          protected void onPostExecute(Object result) 
                          {
                             finish();
                          }
                       }; 

                    saveContactTask.execute((Object[]) null); 
                 }

                 else
                 {
                    AlertDialog.Builder alert = new AlertDialog.Builder(AddEditDevice.this);
                    alert.setTitle(R.string.errorTitle); 
                    alert.setMessage(R.string.errorMessage);
                    alert.setPositiveButton(R.string.errorButton, null); 
                    alert.show();
                 }
              } 
         });}


       public static void main(String[] args) {
           Calendar cal = Calendar.getInstance();
           TimePicker tp;
           cal.set(Calendar.HOUR_OF_DAY, tp.getCurrentHour());
           cal.set(Calendar.MINUTE, tp.getCurrentMinute());
           long minutes = (cal.getTimeInMillis() -
               Calendar.getInstance().getTimeInMillis()) / 1000 / 60;
       }



           private void saveContact() 
           {
              DatabaseConnector dbConnector = new DatabaseConnector(this);

              if (getIntent().getExtras() == null)
              {
//                Log.i("Test for Null", ""+dbConnector+" "+nameEt+" "+capEt+" "+timeEt+" "+codeEt+" "+ssidTextView);
                  dbConnector.insertContact(nameEt.getText().toString(),
                          capEt.getText().toString(),
                          timeEt.getCurrentHour().toString() + ":"
                              + timeEt.getCurrentMinute().toString(),
                          codeEt.getText().toString(),
                       ssidTextView.getText().toString());

              }
              else
              {
                 dbConnector.updateContact(rowID,
                         nameEt.getText().toString(),
                            capEt.getText().toString(),
                              timeEt.getCurrentHour().toString() + ":"
                                  + timeEt.getCurrentMinute().toString(),
                              codeEt.getText().toString(),
                              ssidTextView.getText().toString());
              }
           }
}
导入android.app.Activity;
导入android.app.AlertDialog;
导入android.content.Context;
导入android.net.wifi.WifiInfo;
导入android.net.wifi.WifiManager;
导入android.os.AsyncTask;
导入android.os.Bundle;
导入android.view.ViewGroup;
导入android.view.view;
导入android.view.view.OnClickListener;
导入android.widget.Button;
导入android.widget.EditText;
导入android.widget.FrameLayout;
导入android.widget.TextView;
导入android.widget.TimePicker;
导入java.text.DecimalFormat;
导入android.util.Log;
导入java.util.Calendar;
公共类AddEditDevice扩展活动{
私人长罗威德;
私有编辑文本名称;
私人编辑文本capEt;
私人编辑文本代码集;
私人计时器;
私有文本视图ssidTextView;
Calendar cal=Calendar.getInstance();
时间选择器;
//@覆盖
创建时的公共void(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.add_country);
WifiManager wifi=(WifiManager)getSystemService(Context.wifi\u SERVICE);
WifiInfo=wifi.getConnectionInfo();
字符串ssidString=info.getSSID();
if(ssidString.startsWith(“\”)和&ssidString.endsWith(“\”){
ssidString=ssidString.substring(1,ssidString.length()-1);
}
//TextView ssidTextView=(TextView)findViewById(R.id.wifiSSID);
ssidTextView=(TextView)findViewById(R.id.wifiSSID);
ssidTextView.setText(ssidString);
nameEt=(EditText)findViewById(R.id.nameEdit);
capEt=(EditText)findViewById(R.id.capEdit);
codeEt=(EditText)findViewById(R.id.codeEdit);
timeEt=(TimePicker)findviewbyd(R.id.timeEdit);
Bundle extras=getIntent().getExtras();
如果(附加值!=null)
{
rowID=extras.getLong(“row_id”);
setText(extras.getString(“name”);
capEt.setText(附加getString(“cap”);
codeEt.setText(extras.getString(“代码”);
字符串时间=extras.getString(“时间”);
String[]parts=time.split(“:”);
timeEt.setCurrentHour(整数值为[0]);
timeEt.setCurrentMinute(整数值of(第[1]部分));
timeEt.setIs24HourView(假);
}
按钮saveButton=(按钮)findViewById(R.id.saveBtn);
saveButton.setOnClickListener(新的OnClickListener(){
公共void onClick(视图v)
{
if(nameEt.getText().length()!=0)
{
AsyncTask saveContactTask=
新建异步任务()
{
@凌驾
受保护对象doInBackground(对象…参数)
{
saveContact();
返回null;
}
@凌驾
受保护的void onPostExecute(对象结果)
{
完成();
}
}; 
saveContactTask.execute((Object[])null;
}
其他的
{
AlertDialog.Builder alert=新建AlertDialog.Builder(AddEditDevice.this);
alert.setTitle(R.string.errorTitle);
alert.setMessage(R.string.errorMessage);
alert.setPositiveButton(R.string.errorButton,null);
alert.show();
}
} 
});}
公共静态void main(字符串[]args){
Calendar cal=Calendar.getInstance();
时间选择器;
校准设置(Calendar.HOUR,tp.getCurrentHour());
校准设置(Calendar.MINUTE,tp.getCurrentMinute());
长分钟=(cal.getTimeInMillis()-
Calendar.getInstance().getTimeInMillis())/1000/60;
}
私有void saveContact()
{
DatabaseConnector dbConnector=新的DatabaseConnector(此);
if(getIntent().getExtras()==null)
{
//Log.i(“测试为空”,“测试为+dbConnector+”+nameEt+“”+capEt+“”+timeEt+“”+codeEt+“”+ssidTextView);
dbConnector.insertContact(nameEt.getText().toString(),
capEt.getText().toString(),
timeEt.getCurrentHour().toString()+“:”
+timeEt.getCurrentMinute().toString(),
codeEt.getText().toString(),
ssidTextView.getText().toString());
}
其他的
{
dbConnector.updateContact(rowID,
nameEt.getText().toString(),
capEt.getText().toString(),
timeEt.getCurrentHour().toString()+“:”
+timeEt.getCurrentMinute().toString(),
codeEt.getText().toString(),
ssidTextView.getText().toString());
}
}
}
使用
j
Calendar cal = Calendar.getInstance();
TimePicker tp;

// ...

cal.set(Calendar.HOUR_OF_DAY, tp.getCurrentHour());
cal.set(Calendar.MINUTE, tp.getCurrentMinute());
long minutes = (cal.getTimeInMillis() -
    Calendar.getInstance().getTimeInMillis()) / 1000 / 60;
import java.util.Calendar;

public class Main {

    public static void main(String[] args) {
        Calendar cal = Calendar.getInstance();

        cal.set(Calendar.HOUR_OF_DAY, 20);
        cal.set(Calendar.MINUTE, 58);

        long minutes = (cal.getTimeInMillis() - Calendar.getInstance().getTimeInMillis()) / 1000 / 60;

        System.out.println(minutes);
    }

}