我在主要活动中有不同的文本视图,每次点击时都会导致另一个活动。所有这些,但第一个被禁用。该过程应该是,当完成第一个活动时,单击完成按钮,它启用下一个文本视图,并且,我希望保持第一个文本视图启用,只是用户想要返回并修复他的信息。我想要做的是每次用户点击完成按钮时,它会将您带回主活动,并在用户完成的文本视图=活动旁边放置一个选中标记的图像或图标。
主要活动 所以基本上在这个主要的我收到一个从我的其他活动接收一个意图,我得到一个将要决定在巫婆的用户号码如果要进入。
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//text view's in the main activity
personal = (TextView) findViewById(R.id.personal);
preference = (TextView) findViewById(R.id.preference);
music = (TextView) findViewById(R.id.music);
sports = (TextView) findViewById(R.id.sports);
//Each image view in the main activity
Icheck4 = (ImageView) findViewById(R.id.ICheck4);
Icheck3 = (ImageView) findViewById(R.id.ICheck3);
Icheck2 = (ImageView) findViewById(R.id.ICheck2);
Icheck1 = (ImageView) findViewById(R.id.ICheck1);
Intent in = getIntent();
preference.setEnabled(false);
music.setEnabled(false);
sports.setEnabled(false);
Icheck1.setVisibility(View.INVISIBLE);
Icheck2.setVisibility(View.INVISIBLE);
Icheck3.setVisibility(View.INVISIBLE);
Icheck4.setVisibility(View.INVISIBLE);
int myValue = in.getIntExtra("parametername1", 0);
if (myValue == 1) {
Icheck1.setVisibility(View.VISIBLE);
preference.setEnabled(true);
}
if (myValue2 == 2) {
Icheck2.setVisibility(View.VISIBLE);
preference.setEnabled(true);
music.setEnabled(true);
}
if (myValue == 3) {
Icheck3.setVisibility(View.VISIBLE);
preference.setEnabled(true);
music.setEnabled(true);
sports.setEnabled(true);
}
if (myValue == 4) {
Icheck4.setVisibility(View.VISIBLE);
preference.setEnabled(true);
music.setEnabled(true);
sports.setEnabled(true);
}
}
第一项活动 在这个活动中,我创建了一个callClick方法,这样每次按钮点击它都会发送一个userNumber,它也会让我回到主要活动。 在2,3和4活动中我有相同的东西,除了,userNumber改变,因为用户号码将决定在女巫IF将进入主要活动
public void callClick(View v){
int userNumber = 1;
Intent in = new Intent(MainActivity2Activity.this, MainActivity.class);
in.putExtra("parametername1", userNumber);
startActivity(in);
}
我遇到的问题是每次用户返回到其中一个早期文本视图以编辑他的信息时,下面的文本视图会再次被禁用,并且复选标记也不会保持可见状态。我怎样才能解决这个问题 ???请。有没有办法,我可以发射和图像,而不是只是让它看不见???
答案 0 :(得分:0)
您应该使用活动结果来处理它:
MainActivity中的:
public void onClick(View v) {
Intent intent = new Intent(this, MainActivity2Activity.class);
startActivityForResult(intent, PERFERENCE_CODE);
}
// React to complete edit
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// Check which request we're responding to
if (resultCode == RESULT_OK) {
if (requestCode == PERFERENCE_CODE) {
// set UI update here
} else if (requestCode == MUSIC_CODE) {
// set UI update here
}
}
}
在MainActivity2Activity中,不要使用intent / startActivity,请使用此代码返回:
setResult(Activity.RESULT_OK);
finish();