将 int 值从 activity 一发送到 activity 二
send int value from activity one to activity two
您好,我正在尝试使用此代码
将 int
值从 activity 一发送到 activity 二
@Override
public void onClick(View v) {
new ChromaDialog.Builder()
.initialColor(getResources().getColor(R.color.colorAccent))
.colorMode(ColorMode.ARGB)
.indicatorMode(IndicatorMode.HEX)
.onColorSelected(new OnColorSelectedListener() {
@Override
public void onColorSelected(@ColorInt int color) {
Intent intent = new Intent(MainActivity.this, Hackpage.class);
intent.putExtra("intVariableName", color);
Toast.makeText(MainActivity.this,"color :"+Integer.toHexString(color),Toast.LENGTH_LONG).show();
}
})
.create()
.show(getSupportFragmentManager(), "ChromaDialog");
}
});
}
但是我的值有问题,我得到 0
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.activity_hackpage);
Texthack = (TextView)findViewById(R.id.hacktext);
Intent mIntent = getIntent();
int intValue = mIntent.getIntExtra("intVariableName", 0);
Texthack.setBackgroundColor(Color.parseColor("#"+Integer.toHexString(intValue )));
您似乎正在获取密钥的默认值
检查您的颜色变量是否为 int,它可能很长。
如果它很长你可以通过 getIntent().getLongExtra(your_key, default_value)
得到它
//global:
static final String SOME_ACTION = "com.example.test.myapplicationtest.SOME_ACTION";
IntentFilter intentFilter = new IntentFilter(SOME_ACTION); //youre project package name. example "com.example.yourprojectpackagename.SOME_ACTION".
@Override
public void onClick(View v) {
new ChromaDialog.Builder()
.initialColor(getResources().getColor(R.color.colorAccent))
.colorMode(ColorMode.ARGB)
.indicatorMode(IndicatorMode.HEX)
.onColorSelected(new OnColorSelectedListener() {
@Override
public void onColorSelected(@ColorInt int color) {
registerReceiver(mReceiver, intentFilter);
Intent intent = new Intent(SOME_ACTION);
intent.putExtra("intVariableName", color);
sendBroadcast(intent);
Toast.makeText(MainActivity.this,"color :"+Integer.toHexString(color),Toast.LENGTH_LONG).show();
}
})
.create()
.show(getSupportFragmentManager(), "ChromaDialog");
}
});
}
///
private BroadcastReceiver mReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
int value = intent.getIntExtra("intVariableName",0);
Toast.makeText(getApplicationContext(),""+value,Toast.LENGTH_LONG).show();
}
};
效果很好。
向现有 Activiy 发送价值。 (例如 MainActivity.java)。
所以你不需要使用 Hackpage.class.
您好,我正在尝试使用此代码
将int
值从 activity 一发送到 activity 二
@Override
public void onClick(View v) {
new ChromaDialog.Builder()
.initialColor(getResources().getColor(R.color.colorAccent))
.colorMode(ColorMode.ARGB)
.indicatorMode(IndicatorMode.HEX)
.onColorSelected(new OnColorSelectedListener() {
@Override
public void onColorSelected(@ColorInt int color) {
Intent intent = new Intent(MainActivity.this, Hackpage.class);
intent.putExtra("intVariableName", color);
Toast.makeText(MainActivity.this,"color :"+Integer.toHexString(color),Toast.LENGTH_LONG).show();
}
})
.create()
.show(getSupportFragmentManager(), "ChromaDialog");
}
});
}
但是我的值有问题,我得到 0
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.activity_hackpage);
Texthack = (TextView)findViewById(R.id.hacktext);
Intent mIntent = getIntent();
int intValue = mIntent.getIntExtra("intVariableName", 0);
Texthack.setBackgroundColor(Color.parseColor("#"+Integer.toHexString(intValue )));
您似乎正在获取密钥的默认值
检查您的颜色变量是否为 int,它可能很长。
如果它很长你可以通过 getIntent().getLongExtra(your_key, default_value)
//global:
static final String SOME_ACTION = "com.example.test.myapplicationtest.SOME_ACTION";
IntentFilter intentFilter = new IntentFilter(SOME_ACTION); //youre project package name. example "com.example.yourprojectpackagename.SOME_ACTION".
@Override
public void onClick(View v) {
new ChromaDialog.Builder()
.initialColor(getResources().getColor(R.color.colorAccent))
.colorMode(ColorMode.ARGB)
.indicatorMode(IndicatorMode.HEX)
.onColorSelected(new OnColorSelectedListener() {
@Override
public void onColorSelected(@ColorInt int color) {
registerReceiver(mReceiver, intentFilter);
Intent intent = new Intent(SOME_ACTION);
intent.putExtra("intVariableName", color);
sendBroadcast(intent);
Toast.makeText(MainActivity.this,"color :"+Integer.toHexString(color),Toast.LENGTH_LONG).show();
}
})
.create()
.show(getSupportFragmentManager(), "ChromaDialog");
}
});
}
///
private BroadcastReceiver mReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
int value = intent.getIntExtra("intVariableName",0);
Toast.makeText(getApplicationContext(),""+value,Toast.LENGTH_LONG).show();
}
};
效果很好。 向现有 Activiy 发送价值。 (例如 MainActivity.java)。 所以你不需要使用 Hackpage.class.