【发布时间】:2015-12-12 07:20:44
【问题描述】:
我正在尝试根据另一个活动的整数值在一个活动中设置 TextView 可见性。理想情况下,我试图将 imgID 的值设置为 int,并且根据整数值,第二个活动设置 10 个 TextView 的可见性。每当在主活动(图片)中单击 ImageView 时,应该将 imgID 值设置为一个数字。但是,当我运行程序时,无论我单击哪张图片,都会出现所有文本。这是我在课堂上的第二个实验室,我有点挣扎,所以如果我错过了一些明显的东西,我深表歉意。此外,感谢我错过的任何其他提示或信息。提前感谢您的帮助!
代码如下:
主要活动:
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.content.Intent;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageView;
public class Pictures extends AppCompatActivity {
static int imgID;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_pictures);
//register click event listener to image view(I hope :)
ImageView imgB = (ImageView) findViewById(R.id.imageViewB);
ImageView imgH = (ImageView) findViewById(R.id.imageViewH);
ImageView imgM = (ImageView) findViewById(R.id.imageViewM);
ImageView imgD = (ImageView) findViewById(R.id.imageViewD);
ImageView imgS = (ImageView) findViewById(R.id.imageViewS);
imgB.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//if imgB clicked, set imgID to 1 and so on...
imgID = 1;
startActivity(new Intent(Pictures.this, Lab2App2.class));
}
});
imgD.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
imgID = 2;
startActivity(new Intent(Pictures.this, Lab2App2.class));
}
});
imgH.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
imgID = 3;
startActivity(new Intent(Pictures.this, Lab2App2.class));
}
});
imgM.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
imgID = 4;
startActivity(new Intent(Pictures.this, Lab2App2.class));
}
});
imgS.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
imgID = 5;
startActivity(new Intent(Pictures.this, Lab2App2.class));
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_pictures, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
第二个活动:
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.TextView;
public class Lab2App2 extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_lab2_app2);
TextView campusB = (TextView)findViewById(R.id.text_campusB);
TextView campusD = (TextView)findViewById(R.id.text_campusD);
TextView campusH = (TextView)findViewById(R.id.text_campusH);
TextView campusM = (TextView)findViewById(R.id.text_campusM);
TextView campusS = (TextView)findViewById(R.id.text_campusH);
if(Pictures.imgID == 1) {
campusB.setVisibility(View.VISIBLE);
campusD.setVisibility(View.GONE);
campusH.setVisibility(View.GONE);
campusM.setVisibility(View.GONE);
campusS.setVisibility(View.GONE);
}
else if(Pictures.imgID == 2) {
campusB.setVisibility(View.GONE);
campusD.setVisibility(View.VISIBLE);
campusH.setVisibility(View.GONE);
campusM.setVisibility(View.GONE);
campusS.setVisibility(View.GONE);
}
else if(Pictures.imgID == 3) {
campusB.setVisibility(View.GONE);
campusD.setVisibility(View.GONE);
campusH.setVisibility(View.VISIBLE);
campusM.setVisibility(View.GONE);
campusS.setVisibility(View.GONE);
}
else if(Pictures.imgID == 4) {
campusB.setVisibility(View.GONE);
campusD.setVisibility(View.GONE);
campusH.setVisibility(View.GONE);
campusM.setVisibility(View.VISIBLE);
campusS.setVisibility(View.GONE);
}
else if(Pictures.imgID == 5) {
campusB.setVisibility(View.GONE);
campusD.setVisibility(View.GONE);
campusH.setVisibility(View.GONE);
campusM.setVisibility(View.GONE);
campusS.setVisibility(View.VISIBLE);
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_lab2_app2, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
【问题讨论】:
-
检查我的答案@Matt 我在你的代码中发现了一个“失败”(我猜):P
标签: android android-activity android-studio android-imageview visibility