2017-06-13 30 views
-1

主要活动的代码在下面。我开始在Android工作室学习SQL。我会回答任何进一步的问题。当我使用sqlite时,Android应用程序不启动

import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.EditText; 
import android.widget.Button; 
import android.widget.TextView; 

public class MainActivity extends AppCompatActivity { 

    EditText inputField; 
    Button insButton,delButton; 
    TextView outputField; 
    SQLHandler handler; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     inputField=(EditText)findViewById(R.id.input); 
     insButton=(Button)findViewById(R.id.insertButton); 
     delButton=(Button)findViewById(R.id.deleteButton); 
     outputField=(TextView)findViewById(R.id.output); 

     showOutput(); 
    } 

    private void showOutput() { 
     String text=handler.showName(); 
     outputField.setText(text); 
    } 

    public void onClick(View v) { 
     switch (v.getId()) { 
      case R.id.insertButton: 
       USER_DETAILS details=new USER_DETAILS(inputField.getText().toString()); 
       handler.addName(details); 
       inputField.setText(""); 
       showOutput(); 
       break; 
      case R.id.deleteButton: 
       handler.delName(inputField.getText().toString()); 
       showOutput(); 
       inputField.setText(""); 
       break; 
     } 
    } 
} 

我已经搜索,但没有找到任何东西在stackoverflow。该错误无法启动组件信息,也无法调用虚拟方法。谢谢你的时间。

+0

你可以附加堆栈跟踪吗? –

回答

0

好像你忘了实例化DBhandler,如果你确实添加它在主要活动中。所以代码将是,

protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     handler=new SQLHandler(this); 
     inputField=(EditText)findViewById(R.id.input); 
     insButton=(Button)findViewById(R.id.insertButton); 
     delButton=(Button)findViewById(R.id.deleteButton); 
     outputField=(TextView)findViewById(R.id.output); 
     showOutput(); 
    } 

根据您的类更改SQLHandler()的参数。

相关问题