Make click button generate random numbers without repeating - android

I want to make an app (just for learning purposes) that generates a random message without repeatition.
I have this code inside the onCreate method:
imgbutton2 = (ImageButton) findViewById(R.id.imgbutton2);
int n=3;
int v1[] = new int[n];
v1[0] = 0;
v1[1] = 0;
v1[2] = 0;
int i, j;
for(i=0;i<n;i++){
for(j=0; ;j++){
Random rn = new Random();
int range = 3;
int r = rn.nextInt(range) 1;
if(r != v1[0] & r != v1[1] & r != v1[2]) {
v1[i] = r v1[i];
textView1=new TextView(this);
switch (r) {
case 1:
textView1 = (TextView) findViewById(R.id.textView1);
textView1.setText("Message 1");
break;
case 2:
textView1 = (TextView) findViewById(R.id.textView1);
textView1.setText("Message 2");
break;
case 3:
textView1 = (TextView) findViewById(R.id.textView1);
textView1.setText("Message 3");
break;
}
break;
}
}
imgbutton2.setOnClickListener(new View.OnClickListener(){
public void onClick(View v){
Intent i = null;
}});
}
I put a null function to the imgbutton2 (that's inside the first FOR), just for wait the user click, and continue reading to enter again in the first FOR with the i=1 now), but it's not working.
The idea is generate a new message when the button is clicked.
Can anyone help me?

Android provides the API to get the Random Number: Use this on your button click event and get random number with no repetition.
Random myRandom = new Random();
int randomNumber = myRandom.nextInt();
Log.i("RandomNumber:" + randomNumber);

Related

use shuffelArray as global variable

We are trying to use this array of integers in other methods. Setting the final shuffled Array to a global variable has become next to impossible. We have set other variable as global. The goal here is to have a new int [] fix array every time a button is clicked. We have been able to generate a random int [] ar but can not utilize the array in other methods. So our questions after making the random int [] ar how can we use it in the onClickBtnOne method? Code with comments below
public class MainActivity extends AppCompatActivity {
Button btn1,btn2,btn3,btn4,btn5,btn6;
String T1,T2,T3,T4,T5,T6;
int test[] = new int[7];
int count = 0;
int v1,v2,v3,v4,v5,v6;
int[] fix = {3,2,1,4,6,5};
// Trying to not use above values
#Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn1 = findViewById(R.id.btn1);
btn2 = findViewById(R.id.btn2);
btn3 = findViewById(R.id.btn3);
btn4 = findViewById(R.id.btn4);
btn5 = findViewById(R.id.btn5);
btn6 = findViewById(R.id.btn6);
main(null);
}
// end onCeate
public static void main(String args[]) {
int [] fix = {1,2,3,4,5,6};
shuffleArray(fix);
// Want to USE this fix shuffleArray
//==================================
for (int i = 0; i < fix.length; i++) {
System.out.print(fix[i] + ",");
}
System.out.println();
}
// Implementing Fisher–Yates shuffle
static void shuffleArray(int [] ar) {
// If running on Java 6 or older, use `new Random()` on RHS here
Random rnd = ThreadLocalRandom.current();
for (int i = ar.length - 1; i > 0; i--) {
int index = rnd.nextInt(i + 1);
// Simple swap
int a = ar[index];
ar[index] = ar[i];
ar[i] = a;
}
}
public void onClickBtnOne(View view){
btn1.setBackgroundColor(getColor(R.color.color_Red));
btn1.setEnabled(false);
count = count + 1;
v1 = count;
test[v1] = count;
if(fix[0] == test[v1]){
// Need a global fix[] here
// =========================
T1 = "true";
if(T1.matches("true")){
btn1.setBackgroundColor(getColor(R.color.color_Yellow));
}
}else {
T1 = "false";
}
}
The array you are trying to use does not have an add method you need to put the values in from another variable like this ar[i] = a; So if you use this type of Array declaration List value = new ArrayList<>(); where you declared the other global variable life will be much easier. Modified code below
This will do the shuffle NOTICE value.clear() without this the List will grow each time it is initialized
public void shf(View view){
value.clear();
for (int i = 1; i <= 6; i++) {
value.add(i);
}
Collections.shuffle(value);
}
And here is your test method call value.get(index) Arrays are ZERO based
public void on1(View view){
btn1.setBackgroundColor(getColor(R.color.color_Red));
btn1.setEnabled(false);
if(value.get(0) == 1){
T1 = "true";
if(T1.matches("true")){
btn1.setBackgroundColor(getColor(R.color.color_Yellow));
}
}else {
T1 = "false";
}
}

How do you start an activity without pressing a button?

I have an activity that asks the user a question. Currently it asks questions forever until the user exits the app, but I want it to ask 20 questions, then proceed to a new activity. I thought if I did this:
for(int i = 0;i < 20;i++){
random = new Random();
chooseQuestion();
}
Intent i = new Intent(PlayGame.this, Gamble.class);
startActivity(i);
it would work, but my app is now breaking. Am I opening a new activity incorrectly, and if so how should I proceed?
Ok I'm really new to this and I don't know how much of the code to post in response to a comment so here's all of it, I'm sorry.
public class PlayGame extends Activity implements OnClickListener {
//set up minimum and maximum numbers for different operators and difficulty levels
private int level = 0, answer = 0, operator = 0, operand1 = 0, operand2 = 0;
private final int ADD_OPERATOR = 0, SUBTRACT_OPERATOR = 1, MULTIPLY_OPERATOR = 2, DIVIDE_OPERATOR = 3;
private String[] operators = {"+", "-", "x", "/"};
private int[][] levelMin = {
{1, 11, 21},
{1, 5, 10},
{2, 5, 10},
{2, 3, 5}};
private int[][] levelMax = {
{10, 25, 50},
{10, 20, 30},
{5, 10, 15},
{10, 50, 100}};
private Random random;
private TextView question, answerTxt, scoreTxt, coincountTxt;
private ImageView response;
private Button btn1, btn2, btn3, btn4, btn5, btn6, btn7, btn8, btn9, btn0, enterBtn, clearBtn;
#Override
//tell the buttons to be buttons when the activity is opened
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_playgame);
question = (TextView)findViewById(R.id.question);
answerTxt = (TextView)findViewById(R.id.answer);
response = (ImageView)findViewById(R.id.response);
scoreTxt = (TextView)findViewById(R.id.score);
coincountTxt = (TextView)findViewById(R.id.coincount);
response.setVisibility(View.INVISIBLE);
btn1 = (Button)findViewById(R.id.btn1);
btn2 = (Button)findViewById(R.id.btn2);
btn3 = (Button)findViewById(R.id.btn3);
btn4 = (Button)findViewById(R.id.btn4);
btn5 = (Button)findViewById(R.id.btn5);
btn6 = (Button)findViewById(R.id.btn6);
btn7 = (Button)findViewById(R.id.btn7);
btn8 = (Button)findViewById(R.id.btn8);
btn9 = (Button)findViewById(R.id.btn9);
btn0 = (Button)findViewById(R.id.btn0);
enterBtn = (Button)findViewById(R.id.enter);
clearBtn = (Button)findViewById(R.id.clear);
btn1.setOnClickListener(this);
btn2.setOnClickListener(this);
btn3.setOnClickListener(this);
btn4.setOnClickListener(this);
btn5.setOnClickListener(this);
btn6.setOnClickListener(this);
btn7.setOnClickListener(this);
btn8.setOnClickListener(this);
btn9.setOnClickListener(this);
btn0.setOnClickListener(this);
enterBtn.setOnClickListener(this);
clearBtn.setOnClickListener(this);
Bundle extras = getIntent().getExtras();
if(extras != null)
{
int passedLevel = extras.getInt("level", -1);
if(passedLevel>=0) level = passedLevel;
}
for(int i = 0;i < 20;i++){
random = new Random();
chooseQuestion();
}
Intent i = new Intent(PlayGame.this, Gamble.class);
startActivity(i);
}
//find which button pressed on main menu and set operator accordingly
public int getOperator() {
Bundle extras = getIntent().getExtras();
int type = extras.getInt("type", -1);
if(type==1) operator = ADD_OPERATOR;
else if(type==2) operator = SUBTRACT_OPERATOR;
else if(type==3) operator = MULTIPLY_OPERATOR;
else if(type==4) operator = DIVIDE_OPERATOR;
//randomly finds operator for each successive question
else if(type==5) operator = random.nextInt(operators.length);
return operator;
}
//get random valid question within the parameters defined by operation and difficulty
private void chooseQuestion(){
//get a question
answerTxt.setText("= ?");
operator = getOperator();
operand1 = getOperand();
operand2 = getOperand();
//get new subtraction question if answer is negative
if(operator == SUBTRACT_OPERATOR){
while(operand2>operand1){
operand1 = getOperand();
operand2 = getOperand();
}
}
//get new division question if answer is not whole number
else if(operator==DIVIDE_OPERATOR){
while((((double)operand1/(double)operand2)%1 > 0) || (operand1==operand2))
{
operand1 = getOperand();
operand2 = getOperand();
}
}
//find answer to question
switch(operator)
{
case ADD_OPERATOR:
answer = operand1+operand2;
break;
case SUBTRACT_OPERATOR:
answer = operand1-operand2;
break;
case MULTIPLY_OPERATOR:
answer = operand1*operand2;
break;
case DIVIDE_OPERATOR:
answer = operand1/operand2;
break;
default:
break;
}
//set text to show question on screen
question.setText(operand1+" "+operators[operator]+" "+operand2);
}
//random number generator
private int getOperand(){
//return operand number
return random.nextInt(levelMax[operator][level] - levelMin[operator][level] + 1)
+ levelMin[operator][level];
}
//tell buttons what to do when clicked on
#Override
public void onClick(View view) {
//button clicked
if(view.getId()==R.id.enter){
//enter button
String answerContent = answerTxt.getText().toString();
if(!answerContent.endsWith("?"))
{
//answer has been entered, check if correct
int enteredAnswer = Integer.parseInt(answerContent.substring(2));
int exScore = getScore();
int exCoincount = getCoincount();
if(enteredAnswer==answer){
//correct - show tick and add one to score and coincount
scoreTxt.setText("Score: "+(exScore+1));
response.setImageResource(R.drawable.tick);
response.setVisibility(View.VISIBLE);
coincountTxt.setText(""+(exCoincount+1));
}
else{
//incorrect - show cross and reset score to 0
scoreTxt.setText("Score: 0");
response.setImageResource(R.drawable.cross);
response.setVisibility(View.VISIBLE);
}
//show new question
chooseQuestion();
}
}
//if clear button clicked reset answer text to question mark
else if(view.getId()==R.id.clear){
//clear button
answerTxt.setText("= ?");
}
else if(view.getId()==R.id.help_btn){
//help button
Intent i = new Intent(PlayGame.this, HowToPlay.class);
startActivity(i);
}
//if number clicked:
else {
//number button
response.setVisibility(View.INVISIBLE);
int enteredNum = Integer.parseInt(view.getTag().toString());
//if first number replace question mark
if(answerTxt.getText().toString().endsWith("?"))
answerTxt.setText("= "+enteredNum);
//if subsequent number append to previous
else
answerTxt.append(""+enteredNum);
}
}
//function to calculate score (used above in 'correct' if statement
private int getScore(){
String scoreStr = scoreTxt.getText().toString();
return Integer.parseInt(scoreStr.substring(scoreStr.lastIndexOf(" ")+1));
}
//function to calculate number of coins
private int getCoincount(){
String coincountStr = coincountTxt.getText().toString();
return Integer.parseInt(coincountStr.substring(coincountStr.lastIndexOf(" ")+1));
}
}
The code I was referencing is onCreate() and it calls the function chooseQuestion() from not far below that.
Use a Handler
new Handler().postDelayed(new Runnable(){
public void run(){
//start activity here
}
}, 1000);
Try this:
for(int i = 0;i <= 20;i++){
if(i==20){
Intent i = new Intent(PlayGame.this, Gamble.class);
startActivity(i);
break;
} else {
random = new Random();
chooseQuestion();
}
}
Use a Thread
new Thread(new Runnable() {
#Override
public void run() {
//enter code here
}).start();}

two array dimensional ArrayIndexOutOfBoundException and NullPointerException

i wrote a code for calculating some weights. they are integer weights.
and i need to save them in every time the button is clicked.
please help me. i cant see why the compiler gives me an error when i try to push the button for the second time. here is my complete code:
public class TrainingActivity extends Activity {
private EditText etIn1, etIn2, etDesired;
private TextView prevInput;
int W[][] = new int[2][];
int X[][] = new int[30][];
int w0=0, w1=0, w2=0, p=1, sum=0, clicks=0;
private Button nxtData;
#Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.training_activity);
View backgroundImage = findViewById(R.id.background);
Drawable background = backgroundImage.getBackground();
background.setAlpha(40);
etIn1= (EditText) findViewById(R.id.etInput1);
etIn2 = (EditText) findViewById(R.id.etInput2);
etDesired = (EditText) findViewById(R.id.etDesired);
prevInput = (TextView) findViewById(R.id.prevInput);
nxtData = (Button) findViewById(R.id.nextData);
nxtData.setOnClickListener(new View.OnClickListener() {
#Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
int sum = 0;
++clicks;
int intetIn1 = Integer.parseInt(etIn1.getText().toString());
int intetIn2 = Integer.parseInt(etIn2.getText().toString());
int intetDesired = Integer.parseInt(etDesired.getText().toString());
X[clicks-1] = new int[] {intetIn1, intetIn2, 1};
prevInput.setText("Last Inputs: (" + intetIn1 + ", " + intetIn2 +
", " + intetDesired + ")");
if(clicks == 1) {
if(intetDesired == 1) {
W[0] = new int[] {intetIn1, intetIn2, 1};
W[1] = W[0];
} else if(intetDesired == (-1)){
W[0] = new int[] {-intetIn1, -intetIn2, -1};
W[1] = W[0];
}
} else if(clicks > 1) {
for(int i=0; i<3; i++){
sum = sum + W[clicks-1][i] * X[clicks-1][i];
} if(sum>0 && intetDesired==1) {
W[clicks] = W[clicks-1];
} else if(sum<0 && intetDesired==(-1)) {
W[clicks] = W[clicks-1];
} else if(sum<=0 && intetDesired==1) {
for(int i=0; i<3; i++) {
W[clicks][i] = W[clicks-1][i] + X[clicks-1][i];
}
} else if(sum>=0 && intetDesired==(-1)) {
for(int i=0; i<3; i++) {
W[clicks][i] = W[clicks-1][i] - X[clicks-1][i];
}
}
}
etIn1.setText("");
etIn2.setText("");
etDesired.setText("");
}
});
}}
and here is the exception it throws:
java.lang.ArrayIndexOutOfBoundsException: length=2; index=2
UPDATEEEEEEEE
i fixed the problem with arrayindexoutofboundexception by changing W[2][] to W[20][]. but in some clicks it gives me this error:
java.lang.NullPointerException
and it's not clear in which clicks. sometimes it's in the second click. or some times it's in fourth click. please help.
W[clicks] = W[clicks - 1];
in above line, you have get error because you have only define size of the array
int W[][] = new int[2][];
so it assigned W[0][] and W[1][] only
When click on second time variable clicks value is 2 then compiler gives ArrayIndexOutOfBoundException
EDITED.............................................................
you have got null value because of your bad logic and not proper way to build two dimensional array. Pls use debug tool to find the actual problem to implement logic and use two dimensional array like below example in java or android:
List<List<Integer>> triangle = new ArrayList<List<Integer>>();
List<Integer> row1 = new ArrayList<Integer>(1);
row1.add(2);
triangle.add(row1);
List<Integer> row2 = new ArrayList<Integer>(2);
row2.add(3);row2.add(4);
triangle.add(row2);
triangle.add(Arrays.asList(6,5,7));
triangle.add(Arrays.asList(4,1,8,3));
System.out.println("Size = "+ triangle.size());
for (int i=0; i<triangle.size();i++)
System.out.println(triangle.get(i));

Android: How to control for loop using button clicks(Eg: Just as who wants to be a millionaire app)

Please am currently working on a quiz app tailored down to exam preparation.
I am stuck with submitting question.
Please here is my code.
I want my question to change same as who wants to be a millionaire app in which it brings first set of question and after answer is given for it, a new question all together appears.
Please how can I go about it.
continued = "Continue";
databaseHelper = new ExamDbHandler(ExamGround.this);
db = databaseHelper.getWritableDatabase();
scores = 0;
tvAnswer = (TextView) findViewById(R.id.answer);
tvQuestion = (TextView) findViewById(R.id.question);
tvexplain = (TextView) findViewById(R.id.explain);
score = (TextView) findViewById(R.id.score);
scres = score.getText().toString();
examTitle = (TextView) findViewById(R.id.examTitle);
bOption1 = (Button) findViewById(R.id.option1);
bOption2 = (Button) findViewById(R.id.option2);
bOption3 = (Button) findViewById(R.id.option3);
bOption4 = (Button) findViewById(R.id.option4);
confirm = (Button) findViewById(R.id.confirm);
proceed = (Button) findViewById(R.id.proceedto);
ahint = (LinearLayout) findViewById(R.id.allhint);
bOption1.setBackgroundColor(Color.parseColor("#33FF33FF"));
bOption2.setBackgroundColor(Color.parseColor("#33FF33FF"));
bOption3.setBackgroundColor(Color.parseColor("#33FF33FF"));
bOption4.setBackgroundColor(Color.parseColor("#33FF33FF"));
confirm.setBackgroundColor(Color.parseColor("#33FF33FF"));
proceed.setBackgroundColor(Color.parseColor("#33FF33FF"));
// getData() gets all questions from my sqlite database
SQLView sv = databaseHelper.getData();
I want the loop to start from here, (I may be wrong though!)
answer = sv.getAnswer().toString();
question = sv.getQuestion();
explain = sv.getExplanation().toString();
option1 = sv.getOption1();
option2 = sv.getOption2();
option3 = sv.getOption3();
option4 = sv.getOption4();
tvQuestion.setText(question);
bOption1.setText(option1);
bOption2.setText(option2);
bOption3.setText(option3);
bOption4.setText(option4);
actual = bOption1.getText().toString();
actual2 = bOption2.getText().toString();
actual3 = bOption3.getText().toString();
actual4 = bOption4.getText().toString();
soption1 = 0;
soption2 = 0;
soption3 = 0;
soption4 = 0;
bOption1.setOnClickListener(ExamGround.this);
bOption2.setOnClickListener(this);
bOption3.setOnClickListener(this);
bOption4.setOnClickListener(this);
confirm.setOnClickListener(this);
}
#Override
public void onClick(View V) {
switch (V.getId()) {
case R.id.option1:
soption1 = 1;
soption2 = 0;
soption3 = 0;
soption4 = 0;
bOption1.setBackgroundColor(Color.parseColor("#FFCCFFCC"));
bOption2.setBackgroundColor(Color.parseColor("#33FF33FF"));
bOption3.setBackgroundColor(Color.parseColor("#33FF33FF"));
bOption4.setBackgroundColor(Color.parseColor("#33FF33FF"));
break;
case R.id.option2:
soption1 = 0;
soption2 = 1;
soption3 = 0;
soption4 = 0;
bOption1.setBackgroundColor(Color.parseColor("#33FF33FF"));
bOption2.setBackgroundColor(Color.parseColor("#FFCCFFCC"));
bOption3.setBackgroundColor(Color.parseColor("#33FF33FF"));
bOption4.setBackgroundColor(Color.parseColor("#33FF33FF"));
break;
case R.id.option3:
soption1 = 0;
soption2 = 0;
soption3 = 1;
soption4 = 0;
bOption1.setBackgroundColor(Color.parseColor("#33FF33FF"));
bOption2.setBackgroundColor(Color.parseColor("#33FF33FF"));
bOption3.setBackgroundColor(Color.parseColor("#FFCCFFCC"));
bOption4.setBackgroundColor(Color.parseColor("#33FF33FF"));
break;
case R.id.option4:
soption1 = 0;
soption2 = 0;
soption3 = 0;
soption4 = 1;
bOption1.setBackgroundColor(Color.parseColor("#33FF33FF"));
bOption2.setBackgroundColor(Color.parseColor("#33FF33FF"));
bOption3.setBackgroundColor(Color.parseColor("#33FF33FF"));
bOption4.setBackgroundColor(Color.parseColor("#FFCCFFCC"));
break;
case R.id.confirm:
tvexplain.setText(explain);
ahint.setVisibility(View.VISIBLE);
proceed.setVisibility(View.VISIBLE);
proceed.setText(continued);
confirm.setVisibility(View.INVISIBLE);
if(actual.equals(answer)){
bOption1.setBackgroundColor(Color.parseColor("#FF66FF66"));
if(soption1 == 1){
scores++;
}
}
if(actual2.equals(answer)){
bOption2.setBackgroundColor(Color.parseColor("#FF66FF66"));
if(soption2 == 1){
scores++;
}
}
if(actual3.equals(answer)){
bOption3.setBackgroundColor(Color.parseColor("#FF66FF66"));
if(soption3 == 1){
scores++;
}
}
if(actual4.equals(answer)){
bOption4.setBackgroundColor(Color.parseColor("#FF66FF66"));
if(soption4 == 1){
scores++;
}
}
break;
case R.id.proceedto:
//In here I want the loop to read next question
break;
}
Please I don't know if this question have been asked before, I tried searching but for over 2 days now, I haven't gotten any clue.
Please all answers are highly appreciated.
Thanks in advance...

working with canvas : The specified child already has a parent. You must call removeView() on the child's parent first

I visit so many solutions regarding this issue but can't catch it clearly .When ever I run the project first time it works perfectly but when I run it second time then it fire this error in logCat
The specified child already has a parent. You must call removeView() on the child's parent first
where is the error in that code segment ?where should I change in code. any suggestion is acceptable .Thanks in advance ..
Main.java
public class MainActivity extends Activity {
List<PieDetailsItem> piedata = new ArrayList<PieDetailsItem>(0);
EditText edt3;
Button btnChart;
public String s15;
public String[] strArray;
public ImageView mImageView ;
public LinearLayout finalLayout ;
#Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
finalLayout = (LinearLayout) findViewById(R.id.pie_container);
mImageView = new ImageView(this);
edt3 = (EditText) this.findViewById(R.id.editText1);
btnChart = (Button) findViewById(R.id.button1);
btnChart.setOnClickListener(new View.OnClickListener() {
#Override
public void onClick(View v) {
/*if(mImageView != null) {
finalLayout.removeView(mImageView);
}
else {*/
s15 = edt3.getText().toString();
/*System.out.println("value 1 is --->"+s10);
System.out.println("value 2 is --->"+s12);*/
System.out.println("value 3 is --->"+s15);
String domain = s15;
strArray = domain.split("\\,");
for (String str : strArray) {
System.out.println(str);
}
// }
openChart();
}
});
}
private void openChart(){
Integer[] items = new Integer[strArray.length];
//double[] distribution = new double[strArray.length];
for (int i = 0; i < items.length; i++) {
items[i] = Integer.parseInt(strArray[i]);
System.out.println("xxxxxx"+items[i]);
}
PieDetailsItem item;
int maxCount = 0;
int itemCount = 0;
// int items[] = { 20, 40, 10, 15, 5 };
int colors[] = { -6777216, -16776961, -16711681, -12303292, -7829368 };
// String itemslabel[] = { " vauesr ur 100", " vauesr ur 200",
// " vauesr ur 300", " vauesr ur 400", " vauesr ur 500" };
for (int i = 0; i < items.length; i++) {
itemCount = items[i];
item = new PieDetailsItem();
item.count = itemCount;
// item.label = itemslabel[i];
item.color = colors[i];
piedata.add(item);
maxCount = maxCount + itemCount;
}
int size = 200;
int BgColor = 0xffa11b1;
Bitmap mBaggroundImage = Bitmap.createBitmap(size, size,
Bitmap.Config.ARGB_8888);
View_PieChart piechart = new View_PieChart(this);
piechart.setLayoutParams(new LayoutParams(size, size));
piechart.setGeometry(size, size, 2, 2, 2, 2, 2130837504);
piechart.setSkinparams(BgColor);
piechart.setData(piedata, maxCount);
piechart.invalidate();
piechart.draw(new Canvas(mBaggroundImage));
piechart = null;
//ImageView mImageView = new ImageView(this);
mImageView.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT));
mImageView.setBackgroundColor(BgColor);
mImageView.setImageBitmap(mBaggroundImage);
//LinearLayout finalLayout = (LinearLayout) findViewById(R.id.pie_container);
finalLayout.addView(mImageView);
}
}
You're adding mImageView to the layout multiple times. A view can only be part of 1 ViewGroup. You need to either add it only once, or create a second ImageView if you really want 2 of them in the layout.

Categories

Resources