Android 活动后微调器更新
在我的应用程序中,当用户单击微调器中的某个项目时,它将转到新活动,因为我有5个编辑文本,我保留微调器的值,当用户编辑此值并按“保存”按钮时,编辑的值应替换微调器中的旧值。如何实现此目的?请帮助我 我的微调器代码:Android 活动后微调器更新,android,spinner,Android,Spinner,在我的应用程序中,当用户单击微调器中的某个项目时,它将转到新活动,因为我有5个编辑文本,我保留微调器的值,当用户编辑此值并按“保存”按钮时,编辑的值应替换微调器中的旧值。如何实现此目的?请帮助我 我的微调器代码: public class BudgetJulyo4Activity extends Activity { /** Called when the activity is first created. */ DBadapter db =new DBada
public class BudgetJulyo4Activity extends Activity
{
/** Called when the activity is first created. */
DBadapter db =new DBadapter(this);
DBadapterRec dbrec=new DBadapterRec(this);
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button b1=(Button)findViewById(R.id.button1);
Button b2=(Button)findViewById(R.id.button2);
Button b3=(Button)findViewById(R.id.button3);
Button b4=(Button)findViewById(R.id.button4);
Spinner s1=(Spinner)findViewById(R.id.spinner);
Spinner s2=(Spinner)findViewById(R.id.spinner1);
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
this, R.array.recurr_array, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
s1.setAdapter(adapter);
String group[]=getResources().getStringArray(R.array.group_array);------>Before calling edit(i.e when enters first time i am showing some hardcore value)
ArrayAdapter<String> adapter1 = new ArrayAdapter<String>(
this, android.R.layout.simple_spinner_item,group);
adapter1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
s2.setAdapter(adapter1);
}
protected void onActivityResult(int requestCode, int resultCode, Intent data) ------>After edit option.
{
java.lang.System.out.println("Inside act");
// TODO Auto-generated method stub
// }
super.onActivityResult(requestCode, resultCode, data);
if(resultCode==1)
{
Spinner s2=(Spinner)findViewById(R.id.spinner1);
String str1=data.getStringExtra("grp1val");
String str2=data.getStringExtra("grp2val");
String str3=data.getStringExtra("grp3val");
String str4=data.getStringExtra("grp4val");
String str5=data.getStringExtra("grp5val");
String str6="Edit";
String group[] = new String[] { str1,str2,str3,str4,str5,str6};
ArrayAdapter<String> adapter1 = new ArrayAdapter<String>(
this, android.R.layout.simple_spinner_item,group);
adapter1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
s2.setAdapter(adapter1);
}
}
}
如果微调器的适配器扩展了BaseAdapter,则应在修改数据后对其调用notifyDataSetChanged:
((BaseAdapter)s2.getAdapter()).notifyDataSetChanged();
在setOnItemSelectedListener中使用s2.setselectionposition并将该值保存在共享首选项中,在创建该活动时使用上述方法尝试将“开始微调器”编辑活动作为startactivityforresult而不是startActivity,以便在微调器活动中获取用户保存的值,然后可以使用中的最新值更新微调器startactivityforresult:
谢谢Pravena_Pinki。。但我在android中没有达到这个级别。你能为你发布的上述答案提供一些详细信息吗?@prakash的可能副本:以startactivityforresult而不是startActivity启动SpinnerEdit,并在SpinnerEdit活动中使用setResult将数据发送回Spinner活动。然后在startactivityforresult中,你可以重置Spinner用户在SpinnerEdit活动中选择的值。@prakash.k为什么发布相同的问题?我尝试了这个,然后得到了这个异常07-16 12:59:13.167:E/AndroidRuntime543:java.lang.UnsupportedOperationException您能在异常的跟踪中看到它在代码中发生的位置吗?finalArrayAdapter NoCoreAdapter=新的ArrayAdapter此,android.R.layout.simple\u微调器\u项,月份;NoCoreAdapter.setDropDownViewResourceandroid.R.layout.simple\u微调器\u下拉菜单\u项;mon_spinner.SetOnItemSelectedListener新建AdapterView.OnItemSelectedListener{public void onItemSelectedAdapterView父级,视图视图,int pos,长id{int index=0;NoCoreAdapter.addEDIT;BaseAdapter mon_spinner.getAdapter.notifyDataSetChanged;我将在下面发送日志:07-16 13:14:07.198:ERROR/AndroidRuntime604:java.lang.UnsupportedOperationException 07-16 13:14:07.198:ERROR/AndroidRuntime604:at java.util.AbstractList.addAbstractList.java:41107-16 13:14:07.198:ERROR/AndroidRuntime604:at java.util.AbstractList.addAbstractList.java:432 07-16 13:14:07.198:ERROR/AndroidRuntime604:at android.widget.ArrayaAdapter.AddArrayaAdapter.java:178 07-16 13:14:07.198:ERROR/AndroidRuntime604:at com.experts.IVScreen.ListMonthActivity$1.onItemSelectedListMonthActivity.java:87HI我想要传递到spinneredit类中“后退”按钮中的另一个活动。这是我的以下代码:Intent spin=new IntentgetApplicationContext,BudgetJulyo4Activity.class;spin.putextgrp1val,group1.getText.toString;spin.putextgrp2val,group2.getText.toString;spin.putextgrp3val,group3.getText.toString;spin.putExtragrp4val,group4.getText.toString;spin.putExtragrp5val,group5.getText.toString;startActivityForResultspin,1;。但它不会进入activityonresult代码。请在SpinnerEdit中使用setResult而不是startActivityForResultActivity@prakash.k:当前正在使用哪个适配器在微调器中填充数据?这是微调器在编辑选项之前填充代码:ArrayAdapter Adapter 1=ArrayAdapter.createFromResource this,R.array.group_array,android.R.layout.simple_微调器项目;Adapter 1.setDropDownViewResourceandroid.R.layout.simple_微调器项目;s2.SetAdapter Adapter Adapter Adapter 1;尝试Adapter 1.addnew value;在startAct中ivityForResult,您可以找到许多示例,说明我们如何通过Stackoverflow上的代码更新ArrayAdapter。
public void onItemSelected(AdapterView<?> s2, View arg1,
int pos, long id) {
// TODO Auto-generated method stub
group=s2.getItemAtPosition(pos).toString();
if(group.equals("Edit"))
{
Intent i = new Intent(getApplicationContext(),SpinnerEdit.class);
startActivityForResult(i, 1);
}
//your code here...
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
if(resultCode==1){
String str1=ata.getStringExtra("grp1val");
...
//here you can update your Spinner Adapter with latest values
}
else{
Toast.makeText(this, "Fail", Toast.LENGTH_LONG).show();
}
saveButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent spin = new Intent();
spin.putExtra("grp1val", group1.getText().toString());
spin.putExtra("grp2val", group2.getText().toString());
spin.putExtra("grp3val", group3.getText().toString());
spin.putExtra("grp4val", group4.getText().toString());
spin.putExtra("grp5val", group5.getText().toString());
setResult(1,spin);
finish();
}
});