1

Activityユーザーからユーザー名とパスワードを取得する を作成する必要があります。次に、パスワードに MD5 ハッシュを適用し、最後にローカル データベースにクエリを実行して、"true" または "false" を返します。

ブログから MD5 コード スニペットを入手しました。コード スニペットは、Eclipse で次のエラーを示しています。

マークされた行 1: この行に複数のマーカー

  • トークンの構文エラー、構造体の配置ミス
  • 構文エラー、「enum Identifier」を挿入して EnumHeader を完成させてください
  • トークン "String" の構文エラー、@ が必要です
  • トークン "String" の構文エラー、@ が必要です

マークされた行 2: トークンの構文エラー、誤った配置の構成体

マークされた 3 行目: トークンの構文エラー、誤った配置の構成体

マークされた行 4: この行に複数のマーカー

  • トークン「catch」の構文エラー、識別子が必要です
  • トークン "}" の構文エラーです。{ このトークンの後にある必要があります

私はJavaとAndroid環境に非常に慣れていません。コードの何が問題なのか、アクティビティが機能するように md5 ハッシュ関数のコードをどこに配置すればよいのか教えてください。また、ローカルの SQLite データベースにクエリを実行し、そこから必要な値を返す方法を教えてください。

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

private String md5(String in) {  //line 1
    MessageDigest digest;        //line 2
    try {                        //line 3
        digest = MessageDisgest.getInstance("MD5");
        digest.reset();
        digest.update(in.getBytes());
        byte[] a = digest.digest();
        int len = a.length;
        StringBuilder sb = new StringBuilder(len << 1);
        for(int i=0;i<len;i++) {
            sb.append(Character.forDigit((a[i] & 0xf0) >> 4, 16));
            sb.append(Character.forDigit(a[i] & 0x0f, 16));
        }
        return sb.toString();
    } catch (NoSuchAlgorithmException e) { e.printStackTrace();} //line 4
    return null;

}

public class MainActivity extends Activity {

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



    Button btn = (Button) findViewById(R.id.button1);
    btn.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            EditText text = (EditText)findViewById(R.id.editText1);
            EditText text1 = (EditText)findViewById(R.id.editText2);
            String userid = text.getText().toString();
            String pass = text1.getText().toString();
        Toast.makeText(MainActivity.this,"Entered"+userid+"and password entered is"+pass,Toast.LENGTH_SHORT).show();
        }

    });

}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.activity_main, menu);
    return true;
}

}
4

1 に答える 1

4

Javaでは、すべてのメソッドがクラス内に存在する必要があります。

public class MainActivity extends Activity {
    private String md5(String in) {
        // etc
    }

    // Rest of class
}

私はJavaとAndroid環境に非常に慣れていません。

言語の作者から Java言語を学ぶなど、チュートリアルや紹介を読むことで多くの利点が得られます。

于 2013-03-07T20:01:03.713 に答える