Hjälp med enkel app i Android SDK.

Permalänk
Medlem

Hjälp med enkel app i Android SDK.

Hej!

Håller på med en app till en Android telefon. Har laddat ner Android SDK:n och använder mig av "Eclipse" programmet. Vill ha en tom skärm med två knappar och ovanför ska det stå hur många gånger man tryckt på varje. Har fått ena knappen att fungera efter lite läsning på nätet, men behöver hjälp med andra

Länkar lite kod här, så kanske någon kan vägleda mig. Kan inte speciellt mycket Java!

package com.secor.calc; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.TextView; public class Calc extends Activity { int counter = 0; TextView text; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_calc); init(); } public void init(){ Button button = (Button) findViewById(R.id.button); text = (TextView) findViewById(R.id.text); button.setOnClickListener(new OnClickListener(){ @Override public void onClick(View v) { // TODO Auto-generated method stub counter++; text.setText("Antal: " + counter); } }); } }

Dold text

Saknas något eller undrar ni något så skriv! All hjälp uppskattas!

//Emil

Visa signatur

Phenom X6 1100T @ 4Ghz, Gigabyte 280X 3Gb, 8GB Corsair DDR3, Be Quiet 700w, Crucial 64gb, Samsung 850 Evo 500gb

Permalänk
Datavetare

Du behöver dels en räknare per knapp (just nu har du bara en räknare), sedan måste du sätta en onClickListener även för den andra knappen.

Ett sätt du skulle kunna göra det är med en klass vars enda uppgift är att hantera onClick och uppdatera ett associerade textfält med värdet.

Här är ett exempel (helt utan alla former av felcheck). Skapar två instanser av ClickCounter, en som binder ihop button1 med textView1 och en annan som binder ihop button2 med textView2

package com.secor.calc; package com.example.calc; import android.os.Bundle; import android.app.Activity; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.TextView; public class MainActivity extends Activity { class ClickCounter implements OnClickListener { TextView txt; int counter = 0; ClickCounter(Button btn, TextView txt) { this.txt = txt; btn.setOnClickListener(this); } @Override public void onClick(View v) { txt.setText("Antal: " + ++counter); } } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); new ClickCounter((Button)findViewById(R.id.button1), (TextView)findViewById(R.id.textView1)); new ClickCounter((Button)findViewById(R.id.button2), (TextView)findViewById(R.id.textView2)); } }

Dold text
Visa signatur

Care About Your Craft: Why spend your life developing software unless you care about doing it well? - The Pragmatic Programmer

Permalänk
Medlem
Skrivet av Yoshman:

Du behöver dels en räknare per knapp (just nu har du bara en räknare), sedan måste du sätta en onClickListener även för den andra knappen.

Ett sätt du skulle kunna göra det är med en klass vars enda uppgift är att hantera onClick och uppdatera ett associerade textfält med värdet.

Här är ett exempel (helt utan alla former av felcheck). Skapar två instanser av ClickCounter, en som binder ihop button1 med textView1 och en annan som binder ihop button2 med textView2

package com.secor.calc; package com.example.calc; import android.os.Bundle; import android.app.Activity; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.TextView; public class MainActivity extends Activity { class ClickCounter implements OnClickListener { TextView txt; int counter = 0; ClickCounter(Button btn, TextView txt) { this.txt = txt; btn.setOnClickListener(this); } @Override public void onClick(View v) { txt.setText("Antal: " + ++counter); } } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); new ClickCounter((Button)findViewById(R.id.button1), (TextView)findViewById(R.id.textView1)); new ClickCounter((Button)findViewById(R.id.button2), (TextView)findViewById(R.id.textView2)); } }

Dold text

Fick det att fungera! Tack!! Men har en till fråga, skulle det gå att göra "-1" knappar?

//Emil

Visa signatur

Phenom X6 1100T @ 4Ghz, Gigabyte 280X 3Gb, 8GB Corsair DDR3, Be Quiet 700w, Crucial 64gb, Samsung 850 Evo 500gb

Permalänk
Skrivet av ASUSG15:

Fick det att fungera! Tack!! Men har en till fråga, skulle det gå att göra "-1" knappar?

//Emil

bara köra med -- istället för ++

import android.os.Bundle;
import android.app.Activity;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends Activity implements OnClickListener {

int counter;
Button add, sub;
TextView display;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
counter = 0;
add = (Button) findViewById(R.id.bAdd);
sub = (Button) findViewById(R.id.bSub);
display = (TextView) findViewById(R.id.tvDisplay);
add.setOnClickListener(this);
sub.setOnClickListener(this);
}

@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.bAdd:
counter++;
display.setText("Antal: " + counter);
break;
case R.id.bSub:
counter--;
display.setText("Antal: " + counter);
break;

}

}

}

Dold text