2017-02-06 10 views
0

私のクラスは、クラス宣言のclassキーワードの前に抽象的なキーワードを持っていませんでしたが、アクティビティのクラスをインスタンス化しようとすると、class is abstract; can not be instantiatedと表示されます。アンドロイドスタジオは、このクラスが抽象クラスであると主張しています。

これは私にとって抽象的なクラスのようには見えないので意味がありません。私が間違ってやっているfiger私を助けて、私はそれを修正することができますどのように

にエラーがここnew ConnectionClass()

であるしてくださいここでクラスConnectionClass

final public class ConnectionClass { 
    String ip = ""; 
    String classs = "net.sourceforge.jtds.jdbc.Driver"; 
    String db = "tmseprd"; 
    String un = ""; 
    String password = ""; 

    @SuppressLint("NewApi") 
    public Connection CONN() { 
     StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder() 
       .permitAll().build(); 
     StrictMode.setThreadPolicy(policy); 
     Connection conn = null; 
     String ConnURL = null; 
     try { 

      Class.forName(classs); 
      ConnURL = "jdbc:jtds:sqlserver://" + ip + ";" 
        + "databaseName=" + db + ";user=" + un + ";password=" 
        + password + ";"; 
      conn = DriverManager.getConnection(ConnURL); 
     } catch (SQLException se) { 
      Log.e("ERRO", se.getMessage()); 
     } catch (ClassNotFoundException e) { 
      Log.e("ERRO", e.getMessage()); 
     } catch (Exception e) { 
      Log.e("ERRO", e.getMessage()); 
     } 
     return conn; 
    } 

    } 

ある活動がactivity_connection

です
public class ConnectionActivity extends AppCompatActivity { 

    ConnectionClass connectionClass; 
    EditText edtuserid,edtpass; 
    Button btnlogin; 
    ProgressBar pbbar; 


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

     connectionClass = new ConnectionClass(); 
     edtuserid = (EditText) findViewById(R.id.edtuserid); 
     edtpass = (EditText) findViewById(R.id.edtpass); 
     btnlogin = (Button) findViewById(R.id.btnlogin); 
     pbbar = (ProgressBar) findViewById(R.id.pbbar); 
     pbbar.setVisibility(View.GONE); 

     btnlogin.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       DoLogin doLogin = new DoLogin(); 
       doLogin.execute(""); 

      } 
     }); 

    } 
+7

を私はそれらがあなたの本当のcredsをではありません願っています。 –

+0

私にはアクティビティはありません。最終クラスをインスタンス化することはできますが、最終クラスのサブクラスを作成することはできません。 – zed

+0

@ivedは誤って活動に参加していませんでした。申し訳ありません。私はそれを更新しました、あなたは今それについてどう思いますか? –

答えて

0

new ConnectionClass()でエラーが発生しているとします。

最終的なクラスを持つ必要はないようです。ただ確かにコンストラクタを追加してください。静的メソッドを持つ静的クラスが必要なことを意味するかもしれません。

ではなく、これを使用します。

public class ConnectionClass { 
     String ip = ""; 
     String classs = "net.sourceforge.jtds.jdbc.Driver"; 
     String db = "tmseprd"; 
     String un = ""; 
     String password = ""; 

     public ConnectionClass(){} 

     @SuppressLint("NewApi") 
     public Connection CONN() { 
      .... 
     } 
} 
+0

私はこれを試しましたが、動作していません –

関連する問題