【问题标题】:How To Use Button "OK" In Looping System?如何在循环系统中使用“确定”按钮?
【发布时间】:2013-10-13 23:13:07
【问题描述】:

我想制作一个按钮,以便在此过程正常运行时依次保存/打印/显示 2 个微调器中的名称。

在执行用户名时会按下此按钮。 例如:

  1. 当项目 == Linda 时,Linda 按下了按钮。按钮将直接在 spinner1 上显示/打印 Linda 的名字。

  2. 同样的事情发生在其他用户身上。并且名称会直接保存在后面的微调器(Spinner2)中。

这是我的代码...

主程序

这个主程序系统用于循环名称。

public boolean onOptionsItemSelected(MenuItem item) {
    Log.i(TAG, "Menu Item selected " + item);
    if (item == Linda) {
        variabel.setViewMode(ClassOne.Object1);
        new Thread(new Runnable(){
        public void run() {
        try {
        Thread.sleep(5000);
        onOptionsItemSelected(David);}
        catch (Exception ex){}}
        }).start();

    } else if (item == David) {
            variabel.setViewMode(ClassOne.Object2);
            new Thread(new Runnable(){
            public void run() {
            try {
            Thread.sleep(5000);
            onOptionsItemSelected(Samuel);}
            catch (Exception ex){}}
            }).start();

    } else if (item == Samuel) {
            variabel.setViewMode(ClassOne.Object3);
          new Thread(new Runnable(){
          public void run() {
          try {
          Thread.sleep(5000);
          onOptionsItemSelected(Linda);}
          catch (Exception ex){}}
          }).start();
      }

SpinnerProgram

这是我的代码...

private Spinner spinner1, spinner2;
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    addListenerOnButton();
    addListenerOnSpinnerItemSelection();

}

public void addListenerOnSpinnerItemSelection() {

    spinner1 = (Spinner) findViewById(R.id.spinner1);
    spinner1.setOnItemSelectedListener(new CustomOnItemSelectedListener());
    spinner2 = (Spinner) findViewById(R.id.spinner2);
    spinner2.setOnItemSelectedListener(new CustomOnItemSelectedListener());

// get the selected dropdown list value
public void addListenerOnButton() {

    spinner1 = (Spinner) findViewById(R.id.spinner1);
    spinner2 = (Spinner) findViewById(R.id.spinner2);

public void onClick(View v) {
/* get names when button stop on looping process and print the names in spinners*/
            String name1 = String.valueOf(spinner1.getSelectedItem());
            String name2 = String.valueOf(spinner2.getSelectedItem());
            String print_name = getName(name1);
            String print_name = getName(name2);

public String getName(String name) {
        String value = "0";
        if (name.equalsIgnoreCase("Linda")) {
            value = "0";
        } else if (name.equalsIgnoreCase("David")) {
            value = "1";
        } else if (name.equalsIgnoreCase("Samuel")) {
            value = "2"; }

STRING.XML

 <string-array name="names">
    <item>Linda</item>
    <item>David</item>
    <item>Samuel</item>

我的问题:

如何创建一个按钮,我应该把可以直接打印/显示所选名称的按钮放在微调器中的什么位置?

【问题讨论】:

  • 嗨,迈克,感谢您回答我的问题。没有麦克,当按下“确定”按钮时,spinner1 应该只得到一个名称。 (按下 OK 按钮时微调器将自动获取名称)我想将按钮“确定”放在方法“onOptionsItemSelected”中,以便它可以获取名称并在微调器上显示名称。
  • 在 Spinner1 得到名称之后。当我们第二次按下 OK 按钮时,它会在 spinner2 上显示名称。
  • 如果我们在 Spinner 上有两个名字也没关系: Linda on Spinner1 Linda on Spinner2
  • 我已经更新了微调器程序。我的要点是: 1.如何创建按钮“确定”? (按下它会得到用户选择的名称) 2. 如何将“OK”按钮与 Spinner 连接? (该按钮还将选择微调器上与用户选择的名称相匹配的名称。
  • 例如,当用户想要选择大卫时。他会像(item=David)一样快地按下按钮OK。并且名称“大卫”将直接显示在微调器上。

标签: android button spinner


【解决方案1】:

我不确定这是否正是您想要的,但也许它至少可以帮助我通过您的 cmets 弄清楚。

ma​​in.xml 布局:

<LinearLayout
    android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >

<Spinner android:id="@+id/spinner1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:entries="@array/names" />

<Spinner android:id="@+id/spinner2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:entries="@array/names" />

</LinearLayout>

<Button android:id="@+id/button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Choose" />

</LinearLayout>

MainActivity

 public class MainActivity extends Activity implements OnClickListener
 {
private Button button;
private Spinner spinner1, spinner2;

private long startTime = 0;
private int elapsed = 0;
private final int TIMEOUT = 3;


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

    button = (Button) findViewById(R.id.button);
    spinner1 = (Spinner) findViewById(R.id.spinner1);
    spinner2 = (Spinner) findViewById(R.id.spinner2);

    button.setOnClickListener(this);

    startTime = System.currentTimeMillis();
    handler.postDelayed(run, 0);

}

@Override
public void onClick(View v)
{
    handler.removeCallbacks(run);
    spinner2.setSelection(spinner1.getSelectedItemPosition());
}

final Handler handler = new Handler();
Runnable run = new Runnable()
{
    @Override
    public void run()
    {
        long millis = System.currentTimeMillis() - startTime;
        int seconds = (int) (millis / 1000);
        seconds = seconds % 60;

        elapsed = TIMEOUT - seconds;

        if (elapsed == 0)
        {
            incrementSpinner();
            startTime = System.currentTimeMillis();
            handler.postDelayed(this, 0);               
        }
        else
        {
            handler.postDelayed(this, 500);             
        }
    }
};  

private void incrementSpinner()
{
    int selPos = spinner1.getSelectedItemPosition();

    if(selPos == spinner1.getCount() - 1)
    {
        selPos = 0;
    }
    else
    {
        selPos++;
    }

    spinner1.setSelection(selPos);
}

}

【讨论】:

  • 非常感谢迈克,我很感激。 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-01-25
  • 1970-01-01
  • 2013-12-17
  • 1970-01-01
  • 2011-12-27
相关资源
最近更新 更多