我的要求是:列出所有销售路线&突出默认,它应该是第一个选项。如果销售人员选择其他选项(未选择默认值),则应出现弹出窗口。弹出窗口包含一个表单,它与DB对话。提交弹出窗口表单后,它返回上一个屏幕,需要允许其他位置。
查看我的代码
此初始列表活动:
ArrayList<Object> routeList = getWmRoute();
ArrayList<String> routhPath = new ArrayList<String>();
for(int i = 0; i<routeList.size();i++){
routhPath.add(((WMRoute) routeList.get(i)).getDescription());
}
ArrayAdapter ad = new ArrayAdapter(this,android.R.layout.simple_list_item_single_choice,routhPath);
setListAdapter(ad);
final ListView list=getListView();
list.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
list.setItemsCanFocus(true);
list.setTextFilterEnabled(true);
list.setItemChecked(0,true);
list.setSelection(0);
这是听众方法
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
super.onListItemClick(l, v, position, id);
if(position !=0 ){
Bundle bundle = new Bundle();
int postion = position;
String aString = Integer.toString(postion);
bundle.putString("positon", aString);
Intent showContent = new Intent(getApplicationContext(),SalesRouteDevitionActivity.class);
// startActivityForResult(showContent,0);
startActivity(showContent);
}
}
这是我的SalesRouteDevitionActivity类
array_spinner=new String[2];
array_spinner[0]="Rain";
array_spinner[1]="Floods";
Bundle bundle = this.getIntent().getExtras();
param1 = bundle.getString("param1");
Spinner s = (Spinner) findViewById(R.id.spinner1);
ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_spinner_dropdown_item, array_spinner);
s.setAdapter(adapter);
final Button button = (Button) findViewById(R.id.submit);
button.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Toast.makeText(SalesRouteDevitionActivity.this, "Beep Bop", Toast.LENGTH_SHORT).show();
Intent showContent = new Intent(getApplicationContext(),SalesRouteActivity.class);
Bundle bundle = new Bundle();
bundle.putString("position", param1);
Intent mIntent = new Intent();
mIntent.putExtras(bundle);
setResult(RESULT_OK, mIntent);
finish();
startActivity(showContent);
}
});
这是我的清单文件
<activity android:theme="@android:style/Theme.Dialog" android:name=".SalesRouteDevitionActivity"
android:label="Sales Route Diviation">
</activity>
完成弹出窗口工作后,我们如何才能进入上一个特定地点的活动?
请帮帮我......
提前致谢
答案 0 :(得分:2)
从你启动弹出窗口的任何地方调用它,通过调用这个startActivityForResult(your_intent,requestCode)
它将启动活动,并在弹出活动中按照这种方式执行
Bundle bundle = new Bundle();
bundle.putString("position", param1);
Intent mIntent = new Intent();
mIntent.putExtras(bundle);
setResult(RESULT_OK, mIntent);
finish();
因此弹出窗口将完成他的活动并返回上一个活动,其中将使用结果调用
并在您的活动中以这种方式覆盖onActivityResult
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(resultCode==1){
if(resultCode==RESULT_OK)
Toast.makeText(this, "SUCCESS", Toast.LENGTH_LONG).show();
else
Toast.makeText(this, "Fail", Toast.LENGTH_LONG).show();
}
}
答案 1 :(得分:1)
您可以为所选项目的位置创建全局变量。然后,当您返回上一个活动时,请致电listView1.smoothScrollToPosition(int position)
。
答案 2 :(得分:1)
你想让listview专注于一个非默认的位置吗?如果是这样,你只需要有位置的返回意图,而在onActivityForResult()你将焦点设置在该位置。如果你有任何问题,请添加我的雅虎或Skype :fsoft_duonghv和我们讨论。
答案 3 :(得分:1)
您可以创建AlertDialog,而不是为弹出窗口启动新活动。您可以调用dismiss()返回您的活动。