Просмотр списка через мыло в андроид
Привет, я успешно разработал одно приложение просмотра списка. Теперь я должен щелкнуть любой элемент из этого списка, что означает подробное описание, отображаемое при следующей операции... оно также успешно завершено. Теперь мой вывод имеет формат ниже:
1 F Krishna
2 Q Danesh
3 P Mercy
здесь я должен щелкнуть по пункту 2 Q Danesh, чтобы перейти к следующему действию.
Q Danesh
это успешно сработало.
но теперь я хочу, чтобы список был похож на этот формат:
1 Krishna
2 Danesh
3 Mercy
Здесь я должен нажать 2 Danesh означает, что это перейти к следующему действию, и должно отображаться следующее действие
Q
как я могу сделать.... пожалуйста, помогите мне...
код ниже - мой код веб-сервиса:
public class RetailerWs {
public String customerData1(){
String customerInfo = "";
try{
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/xcart-432pro","root","");
// Найти информацию о клиенте, где идентификатор клиента максимальный. PreparedStatement Statement = con.prepareStatement("SELECT * FROM xcart_orders"); ResultSet result = Statement.executeQuery();
while(result.next()){
customerInfo = customerInfo
+ result.getString("orderid")
+ " " // this to separate order id from status
+ result.getString("status")
+ " "
// this to separate order id from status
+ result.getString("login")
+ "&" ;
//Here "&"s are added to the return string. This is help to split the string in Android application
}
}
catch(Exception exc){
System.out.println(exc.getMessage());
}
return customerInfo;
}
}
это мой код Android:
public class RetailerActivity extends Activity {
ListView list;
private static final String SOAP_ACTION = "http://xcart.com/customerData1";
private static final String METHOD_NAME = "customerData1";
private static final String NAMESPACE = "http://xcart.com";
private static final String URL = "http://192.168.1.168:8089/XcartLogin/services/RetailerWs?wsdl";
private static final String KEY_STATUS = "status";
private static final String KEY_LOGIN = "login";
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.setOutputSoapObject(request);
HttpTransportSE ht = new HttpTransportSE(URL);
try {
ht.call(SOAP_ACTION, envelope);
SoapPrimitive response = (SoapPrimitive)envelope.getResponse();
SoapPrimitive s = response;
String str = s.toString();
String resultArr[] = str.split("&");
list=(ListView)findViewById(R.id.list);
list.setAdapter(new ArrayAdapter(this, android.R.layout.simple_list_item_1,resultArr));
list.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
String status = parent.getItemAtPosition(position).toString();
String[] status1 = status.split(" ");
String StrStatus = status1[1].toString();
Intent in = new Intent(getApplicationContext(), SingleMenuItemActivity.class);
in.putExtra(KEY_STATUS, StrStatus);
startActivity(in);
}
});
}
catch (Exception e) {
e.printStackTrace();
}
}
}
это мое следующее занятие:
public class SingleMenuItemActivity extends Activity {
// XML node keys
static final String KEY_STATUS = "status";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.single_list_item);
Intent in = getIntent();
String StrStatus = in.getStringExtra(KEY_STATUS);
// Displaying all values on the screen
TextView lblName = (TextView) findViewById(R.id.status_label);
lblName.setText(StrStatus);
}
}
Помогите мне, пожалуйста....
1 ответ
Это возможно. Вы можете перенести свой Q с экрана списка на другой вид деятельности.
Вы просто должны изменить свою первую Activty (которая является вашим значением Q)
in.putExtra("StrStatus", StrStatus);
а затем вы можете получить это в другой деятельности через
Bundle extras=getIntent().getExtras();
if(extras!=null) {
STRStatus=extras.getString("StrStatus");
}
Это будет иметь ваше значение Q, и вы можете делать все, что вы хотите.
-----
Кстати, какую ошибку ты получаешь? Вы можете использовать это, чтобы щелкнуть ваш элемент списка
public void onListItemClick(ListView parent,View v,int position,long id){
try {
TextView t4=(TextView)v.findViewById(R.id.No);
if (t4!=null){
BeanClass/*ClassName*/ mSelected;
int idx=position;
mSelected=m_adapter.getItem(idx);
String ActionID=mSelected.getID();
Intent intent=new Intent(this,SoneActivity.class);
intent.putExtra("StrStatus", StrStatus);
startActivity(intent);
}
}