【发布时间】:2014-05-07 17:37:43
【问题描述】:
我的 android 项目中有一个 main.xml,它具有以下控制权
TextBox1 按钮1 文本框2按钮2
文本框3
文本框4
标签1
按钮3
我有两个活动名称 DatePickerDialogAppsActivity 和 JSONSampleAppActivity。
Datepickerdialogappsactivity 具有在 button1 和 button2 点击事件上弹出数据选择器的功能
Jsonsampleactivity 与我的 sql 数据库连接,并在 button3 点击事件上使用标签绑定数据,从 textbox3 和 textbox4 中的用户获取输入
问题:我的 main.xml 文件同时访问 datepickerdialogappsactivity 和 jsonsampleactivity 我应该如何定义活动和清单文件。
这是我的代码,每次只有一个活动运行意味着我在第一个节点上定义的每个活动都可以工作,其次是不工作。例如,在下面的代码中 datepickerdialogappsactivity 有效,而 jsonsampleactivity 不起作用,如果我首先定义 jsonsample 活动,它将起作用,然后第二个将不起作用,请指导
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<activity
android:name=".DatePickerDialogAppsActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".jsonsampleactivity"
android:label="@string/app_name" >
</activity>
</application>
Main.xml 代码
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello" />
<EditText
android:id="@+id/editText1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="From Date"
>
<requestFocus />
</EditText>
<EditText
android:id="@+id/editText2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="To Date"
>
<requestFocus />
</EditText>
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:width="150px"
android:onClick="showDatePickerDialog"
android:text="From Date" />
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:width="150px"
android:onClick="showDatePickerDialogg"
android:text="To Date" />
<EditText
android:id="@+id/txtUserName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="User Name"
>
<requestFocus />
</EditText>
<EditText
android:id="@+id/txtPassword"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Password"
android:inputType="textPassword"
/>
<Button
android:id="@+id/btnLogin"
android:layout_width="128dp"
android:layout_height="wrap_content"
android:text="Button" />
<TextView
android:id="@+id/lblStatus"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Status"
android:textAppearance="?android:attr/textAppearanceLarge" />
</LinearLayout>
日期选择器代码
package com.Android.JSONApp;
import java.util.Calendar;
import android.app.Activity;
import android.app.DatePickerDialog;
import android.app.Dialog;
import android.os.Bundle;
import android.view.View;
import android.widget.DatePicker;
import android.widget.EditText;
public class DatePickerDialogAppsActivity extends Activity {
/** Called when the activity is first created. */
static final int DATE_DIALOG_ID=0;
static final int DATE_DIALOG_IDD=1;
int yr,mon,day, yrr, monn, dayy;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
public void showDatePickerDialog(View v)
{
Calendar today=Calendar.getInstance();
yr=today.get(Calendar.YEAR);
mon=today.get(Calendar.MONTH);
day=today.get(Calendar.DAY_OF_MONTH);
showDialog(DATE_DIALOG_ID);
}
public void showDatePickerDialogg(View v)
{
Calendar today=Calendar.getInstance();
yrr=today.get(Calendar.YEAR);
monn=today.get(Calendar.MONTH);
dayy=today.get(Calendar.DAY_OF_MONTH);
showDialog(DATE_DIALOG_IDD);
}
protected Dialog onCreateDialog(int id)
{
switch (id) {
case DATE_DIALOG_ID:
return new DatePickerDialog(this,dateSetListener,yr,mon+1,day);
case DATE_DIALOG_IDD:
return new DatePickerDialog(this,dateSetListenerr,yrr,monn+1,dayy);
}
return null;
}
private DatePickerDialog.OnDateSetListener dateSetListener=new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear,
int dayOfMonth) {
// TODO Auto-generated method stub
yr=year;
mon=monthOfYear +1;
day=dayOfMonth;
EditText it=(EditText)findViewById(R.id.editText1);
it.setText(day+" - "+mon+" - "+yr);
}
};
private DatePickerDialog.OnDateSetListener dateSetListenerr=new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int yearr, int monthOfYearr,
int dayOfMonthh) {
// TODO Auto-generated method stub
yrr=yearr;
monn=monthOfYearr +1;
dayy=dayOfMonthh;
EditText itt=(EditText)findViewById(R.id.editText2);
itt.setText(dayy+" - "+monn+" - "+yrr);
}
};
}
json示例代码
package com.Android.JSONApp;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class JSONSampleAppActivity extends Activity implements OnClickListener{
/** Called when the activity is first created. */
//Property declaration
Button btnLogin;
TextView lblStatus;
EditText txtUserName,txtPassword;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btnLogin=(Button)findViewById(R.id.btnLogin);
btnLogin.setOnClickListener(this);
lblStatus=(TextView)findViewById(R.id.lblStatus);
txtUserName=(EditText)findViewById(R.id.txtUserName);
txtPassword=(EditText)findViewById(R.id.txtPassword);
}
@Override
public void onClick(View v) {
switch(v.getId())
{
case R.id.btnLogin:
String userName=txtUserName.getText().toString();
String password=txtPassword.getText().toString();
if(verifyLogin(userName,password))
{
lblStatus.setText("Login Successful");
}
else
{
lblStatus.setText("Login Failed");
}
break;
}
}
public static String convertStreamToString(InputStream is)
{
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
StringBuilder sb = new StringBuilder();
String line = null;
try {
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
}
catch (IOException e) {
e.printStackTrace();
}
finally {
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return sb.toString();
}
public static boolean verifyLogin(String UserName,String Password)
{
try
{
System.out.println("guru");
DefaultHttpClient httpClient=new DefaultHttpClient();
//Connect to the server
HttpGet httpGet=new HttpGet("http://xxx/Service1.svc/checkLogin?name="+UserName+"&pass="+Password);
//Get the response
HttpResponse httpResponse = httpClient.execute(httpGet);
HttpEntity httpEntity = httpResponse.getEntity();
InputStream stream=httpEntity.getContent();
//Convert the stream to readable format
String result= convertStreamToString(stream);
if(result.charAt(1)=='1')
{
return true;
}
else
{
return false;
}
}
catch(Exception e)
{
return false;
}
}
}
【问题讨论】:
-
我不明白,你想让两个活动同时开始吗?
-
您如何尝试使用这些活动?添加代码
-
是的,我希望两个活动同时开始
-
Android 操作系统允许您一次启动一项活动。
-
我已经在@Aashish 上面添加了代码,main.xml 文件可以访问这两个活动的解决方案是什么
标签: android datepicker android-manifest