2015-05-25 3 views
-3

Я начинающий разработчик. Пожалуйста, помогите создать код для подсчета кликов на кнопках (на Android). У меня есть три ImageButton (IB1, IB2, IB3), и у меня есть 3 пустых TextView (TV1, TV2, TV3). Однако счетчик не должен считаться числом кликов каждой из трех кнопок. Счетчик следует рассматривать как процент щелчков каждой кнопки на общее количество кликов на всех трех кнопках в этом сеансе. Вот начало моего кода. Спасибо заранее всем.Пожалуйста, помогите создать код для расчета процента кликов на кнопке

public class ring_fight extends Activity implements View.OnClickListener { 



    ImageButton IB1, IB2, IB3; 
    TextView TV1, TV2, TV3; 

    // I declare counters 
     int Count_for_IB1 = 0; //counter for ImageButton1 
     int Count_for_IB2 = 0; //counter for ImageButton2 
     int Count_for_IB3 = 0;//counter for ImageButton3 


@Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     IB1 = (ImageButton) findViewById(R.id.IB_first); 
     IB2 = (ImageButton) findViewById(R.id.IB_second); 
     IB3 = (ImageButton) findViewById(R.id.IB_third); 

     TV1 = (TextView)findViewById(R.id.TextView1); 
     TV2 = (TextView)findViewById(R.id.TextView2); 
     TV3 = (TextView)findViewById(R.id.TextView3); 


     IB1.setOnClickListener(this); 
     IB2.setOnClickListener(this); 
     IB3.setOnClickListener(this); 
    } 

    public void onClick(View v) { 
     switch (v.getId()) { 
      case R.id.IB1: 
       TV1.setText(""); 
       break; 
      case R.id.IB2: 
       TV1.setText(""); 
       break; 
      case R.id.IB3: 
       TV1.setText(""); 
       break; 
     } 
    } 
} 

ответ

0
float count1=0, count2=0, count3=0, total=0; 
public void onClick(View v) { 
    switch (v.getId()) { 
      case R.id.IB1: 
       count1++; 
      break; 
      case R.id.IB2: 
       count2++; 
      break; 
      case R.id.IB3: 
       count3++; 
      break; 
    } 
    total=count1+count2+count3; 
    TV1.setText(String.valueOf(((count1/total)/100))); 
    TV2.setText(String.valueOf(((count2/total)/100))); 
    TV3.setText(String.valueOf(((count3/total)/100))); 
} 
+0

Как ограничить количество десятичных разрядов одним знаком, например 33,6, но 33.666666? – Valery

+0

Спасибо, наверное, последние строки должны выглядеть так: TV3.setText (String.valueOf (((count3/total) * 100))); – Valery

0

Ниже должно помочь

public void onClick(View v) { 
    switch (v.getId()) { 
     case R.id.IB1: 
      Count_for_IB1++; 
      break; 
     case R.id.IB2: 
      Count_for_IB2++; 
      break; 
     case R.id.IB3: 
      Count_for_IB3++; 
      break; 
    } 
    TV1.setText((Count_for_IB1*100/(Count_for_IB1 + Count_for_IB2 + Count_for_IB3)) + " %"); 
    TV2.setText((Count_for_IB2*100/(Count_for_IB1 + Count_for_IB2 + Count_for_IB3)) + " %"); 
    TV3.setText((Count_for_IB3*100/(Count_for_IB1 + Count_for_IB2 + Count_for_IB3)) + " %"); 
} 
Смежные вопросы