首先,我的目标是在用户单击另一个活动中的颜色选项时,在一个活动中将imageview背景颜色设置为。但我不知道如何使用意图。也许我需要学习更多。
这是我在第一次活动中的代码
public class Games1 extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.games1);
ImageView wire1 = (ImageView)findViewById(R.id.imageView1);
ImageView wire2 = (ImageView)findViewById(R.id.imageView2);
ImageView wire3 = (ImageView)findViewById(R.id.imageView3);
ImageView wire4 = (ImageView)findViewById(R.id.imageView4);
ImageView wire5 = (ImageView)findViewById(R.id.imageView5);
ImageView wire6 = (ImageView)findViewById(R.id.imageView6);
ImageView wire7 = (ImageView)findViewById(R.id.imageView7);
ImageView wire8 = (ImageView)findViewById(R.id.imageView8);
wire1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
DJ.keepMusicOn();
}
});
wire2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
DJ.keepMusicOn();
}
});
wire3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
DJ.keepMusicOn();
}
});
wire4.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
DJ.keepMusicOn();
}
});
wire5.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
DJ.keepMusicOn();
}
});
wire6.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
DJ.keepMusicOn();
}
});
wire7.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
DJ.keepMusicOn();
}
});
wire8.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
DJ.keepMusicOn();
}
});
}
这是我第二次活动的代码(用户选择颜色)
public class SelectColor extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.selectcolor);
ImageView blue = (ImageView)findViewById(R.id.blue);
ImageView orange = (ImageView)findViewById(R.id.orange);
ImageView green = (ImageView)findViewById(R.id.green);
ImageView brown = (ImageView)findViewById(R.id.brown);
ImageView white = (ImageView)findViewById(R.id.white);
blue.setOnClickListener(new ImageView.OnClickListener() {
@Override
public void onClick(View v) {
DJ.keepMusicOn();
Intent myIntent = new Intent(SelectColor.this, Games1.class);
startActivity(myIntent);
}
});
orange.setOnClickListener(new ImageView.OnClickListener() {
@Override
public void onClick(View v) {
DJ.keepMusicOn();
}
});
green.setOnClickListener(new ImageView.OnClickListener() {
@Override
public void onClick(View v) {
DJ.keepMusicOn();
}
});
brown.setOnClickListener(new ImageView.OnClickListener() {
@Override
public void onClick(View v) {
DJ.keepMusicOn();
}
});
white.setOnClickListener(new ImageView.OnClickListener() {
@Override
public void onClick(View v) {
DJ.keepMusicOn();
}
});
blue.setOnClickListener(new ImageView.OnClickListener() {
@Override
public void onClick(View v) {
DJ.keepMusicOn();
}
});
}
最后,这是我第二次活动(用户选择颜色)的".xml"
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context="com.example.zaidi.frame2.MainActivity2"
android:background="#ffffff">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Choose a color"
android:id="@+id/textView9"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:textColor="#000000"
android:textSize="30dp"/>
<ImageView
android:layout_width="100dp"
android:layout_height="100dp"
android:id="@+id/blue"
android:src="@drawable/blue"
android:layout_above="@+id/green"
android:layout_toStartOf="@+id/green"
android:clickable="true" />
<ImageView
android:layout_width="100dp"
android:layout_height="100dp"
android:id="@+id/brown"
android:src="@drawable/brown"
android:layout_alignParentBottom="true"
android:layout_toEndOf="@+id/green"
android:clickable="true" />
<ImageView
android:layout_width="100dp"
android:layout_height="100dp"
android:id="@+id/green"
android:src="@drawable/green"
android:layout_above="@+id/brown"
android:layout_centerHorizontal="true"
android:clickable="true" />
<ImageView
android:layout_width="100dp"
android:layout_height="100dp"
android:id="@+id/orange"
android:src="@drawable/orange"
android:layout_above="@+id/green"
android:layout_toEndOf="@+id/green"
android:clickable="true" />
<ImageView
android:layout_width="100dp"
android:layout_height="100dp"
android:id="@+id/white"
android:src="@drawable/white"
android:layout_alignTop="@+id/brown"
android:layout_toStartOf="@+id/green"
android:clickable="true" />
hi您可以轻松完成此任务。首先添加enum或给每种颜色一个类似的代码1表示红色2表示黑色3代表橙色等。然后使用intetobject.putextra("key",value)在intent中传递int。然后在第一个活动中检查颜色代码并根据颜色代码更改颜色。
Intent colorIntent = new Intent(SelectColor.this, Games1.class);
colorIntent.putExtra("colorCode",1);
startActivity(colorIntent);
第二活动
Intent colorIntent = getIntent();
int colorCode= intent.getIntExtra("colorCode");
switch(colorCode)
{
case 1:
image.setBackgroundResource(R.color.Red);
break;
case 2:
image.setBackgroundResource(R.color.Black);
break;
case 3:
image.setBackgroundResource(R.color.Orange);
break;
}
您可以用intent
putExtra
并通过所需的color
blue.setOnClickListener(new ImageView.OnClickListener() {
@Override
public void onClick(View v) {
DJ.keepMusicOn();
Intent myIntent = new Intent(SelectColor.this, Games1.class);
myIntent.putExtra("desireColor","blue");
startActivity(myIntent);
}
});
以及在Game1.class
的onCreate()
方法中
Intent intent = getIntent();
String yourColor= intent.getStringExtra("desireColor"); // for this example you will get blue color
if(yourColor.equals("blue"){
image.setBackgroundResource(R.color.blue);
} else {
// and so on for other images
}
你有了自己的颜色,现在你想做什么就做什么。
您需要在意图中添加一个指示,表示颜色的id。更换android。R.color.holo_blue_dark使用您自己的颜色资源。
blue.setOnClickListener(new ImageView.OnClickListener() {
@Override
public void onClick(View v) {
DJ.keepMusicOn();
Intent myIntent = new Intent(SelectColor.this, Games1.class);
myIntent.putExtra("color",android.R.color.holo_blue_dark)
startActivity(myIntent);
}
});
然后,提取颜色到资源"yourColor",并用它做你想做的事。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.games1);
int yourColor = getIntent().getExtras().getInt("color");
...
}
在SelectColor Activity
中
blue.setOnClickListener(new ImageView.OnClickListener() {
@Override
public void onClick(View v) {
DJ.keepMusicOn();
Intent myIntent = new Intent(SelectColor.this, Games1.class);
myIntent.putExtra("ImageColor", Color.BLUE);
startActivity(myIntent);
}
});
然后在Games1 Activity
中检索您选择的颜色:
Bundle extras = getIntent().getExtras();
if (extras != null) {
int color = extras.getInt("ImageColor");
wire1.setBackgroundColor(color);
}