見つけたチュートリアルからアクティビティクラスを設定しました。アクティビティクラスは、単に新しい画面を開き、mainActivityのテキストボックスからのメッセージを表示します。APPは、JSONデータを返すサーバー上のphpファイルを呼び出します。私がそれをテストするとき、その側はすべてブラウザでうまく機能します。
さて、Androidの問題です。そのデータをmessageActivityクラスに表示しようとしています。以下のコードを使用してそれを実行しようとしましたが、eclipseは、「コンストラクターIntent(Connect、Class)が未定義です」というインテント行にフラグを立てます。
私の質問は、JSONデータが表示されるようにアクティビティを起動する正しい方法は何ですか?次に、quaryDBメソッドを見ると、応答からmessageActivityにJSONデータを取得するにはどうすればよいですか?
主な活動:
public class MainActivity extends Activity {
RadioButton radioButton1, radioButton2, radioButton3;
public final static String EXTRA_MESSAGE = "com.example.xxxxxxx.MESSAGE";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
radioButton1 = (RadioButton)findViewById(R.id.radioButton1);
radioButton2 = (RadioButton)findViewById(R.id.radioButton2);
radioButton3 = (RadioButton)findViewById(R.id.radioButton3);
radioButton1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
if (radioButton1.isChecked()){
radioButton2.setChecked(false);
radioButton3.setChecked(false);
}
}
});
radioButton2.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
if (radioButton2.isChecked()){
radioButton3.setChecked(false);
radioButton1.setChecked(false);
}
}
});
radioButton3.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
if (radioButton3.isChecked()){
radioButton2.setChecked(false);
radioButton1.setChecked(false);
}
}
});
Spinner spinner = (Spinner) findViewById(R.id.spinner);
// Create an ArrayAdapter using the string array and a default spinner layout
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
R.array.PracticeTypes, android.R.layout.simple_spinner_item);
// Specify the layout to use when the list of choices appears
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
// Apply the adapter to the spinner
spinner.setAdapter(adapter);
spinner.setOnItemSelectedListener(new MyOnItemSelectedListener());
Connect c = new Connect();
c.quaryDB(this);
}
public class MyOnItemSelectedListener implements OnItemSelectedListener{
public void onItemSelected(AdapterView<?> parent,
View view, int pos, long id){
Toast.makeText(parent.getContext(), "The Selected Practice is " + parent.getItemAtPosition(pos).toString(), Toast.LENGTH_LONG).show();
}
public void onNothingSelected(AdapterView parent){
}
}
public void sendMessage(View view){
Intent intent= new Intent(this, DisplayMessageActivity.class);
EditText editText = (EditText) findViewById(R.id.edit_message);
String message = editText.getText().toString();
intent.putExtra(EXTRA_MESSAGE, message);
startActivity(intent);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
};
DisplayMessageActivity:
public class DisplayMessageActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_display_message);
Intent intent = getIntent();
String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE);
TextView textView= new TextView(this);
textView.setTextSize(40);
textView.setText(message);
setContentView(textView);
}
}
次に、JSONデータ応答を取得する接続クラス:
public class Connect{
void Connect(){
}
public void quaryDB(Context context){
Connection conn=null;
try{
HttpClient client = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://10.0.0.6/DevServer/getAllByZip.php");
HttpResponse response = client.execute(httppost);
HttpEntity entity = response.getEntity();
String succMsg = "Successful Execute.\n";
Toast.makeText(context, succMsg, Toast.LENGTH_LONG).show();
}
catch (Exception e){
String errMsg ="Cannot connect to database server.\n"+e.toString();
Toast.makeText(context, errMsg, Toast.LENGTH_LONG).show();
}
finally{
if (conn !=null){
try{
conn.close();
}
catch (Exception e){
}
}
}
}
public void sendMessage(View view){
Intent intent= new Intent(this, DisplayMessageActivity.class);
EditText editText = (EditText) findViewById(R.id.edit_message);
String message = editText.getText().toString();
intent.putExtra(EXTRA_MESSAGE, message);
startActivity(intent);
}
}
sendMessageメソッドはConnectクラスに正しく含まれているとは感じませんが、JSONデータをDisplayMessageActivityに適切に送信する方法がわかりません。その部分を理解した後、データの解析を開始し、実行する必要があることを実行できるようになります。