Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/232.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从2个按钮获取事件字符串_Java_Android - Fatal编程技术网

Java 从2个按钮获取事件字符串

Java 从2个按钮获取事件字符串,java,android,Java,Android,我正在使用适配器在GridView中生成按钮 使用OnClickListener,每当我从GridView中单击按钮时,都可以在变量中获取按钮的字符串。但是,我想单击一个按钮,将其文本存储在一个变量中,然后单击另一个按钮,将其文本存储在另一个变量中,以便以后可以比较这两个文本。我怎么能这么做 我正在使用OnClickListener,因此我以前对一个按钮的实现如下: public void onClick(View v) { Button b = (Button)v; String text =

我正在使用适配器在GridView中生成按钮

使用OnClickListener,每当我从GridView中单击按钮时,都可以在变量中获取按钮的字符串。但是,我想单击一个按钮,将其文本存储在一个变量中,然后单击另一个按钮,将其文本存储在另一个变量中,以便以后可以比较这两个文本。我怎么能这么做

我正在使用OnClickListener,因此我以前对一个按钮的实现如下:

public void onClick(View v) {
Button b = (Button)v;
String text = b.getText.toString();

使用这种方法,我只能从单击的第一个按钮中获取和存储文本,除非我将所有值存储在一个数组中。

请共享您的代码以使内容更易于理解?请编辑您的问题。。。无论如何:

MainActivity.java

public class MainActivity extends Activity {
    private Button button1;
    private Button button2;
    private String butString, butString2;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        button1 = (Button) findViewById(R.id.button1);
        button2 = (Button) findViewById(R.id.button2);

        button1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                butString = (String) button1.getText();
            }
        });
        button2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                butString2 = (String) button1.getText();

            }
        });
    }
}

然后您可以比较这两个字符串。

好的,根据我的理解,您希望在网格视图中比较这两个项目的字符串。如果这是您想要的,我会这样做(只是一个伪代码):


相同的事件意味着什么?我有一个OnItemClick事件,因此如果我想获取按钮的文本,我会这样做:按钮b=(按钮)视图;字符串poop=b.getText().toString()。但是我想从2个按钮中获取字符串,这意味着在GridView中单击2个项目,而不是使用注释,在您的…问题中澄清您的问题。并添加相关代码there@azurefrog当然,单击按钮时会触发事件。但我的问题是:点击一个按钮->事件被触发->存储来自按钮的文本。到现在为止,一直都还不错。但我想要另一个序列,意思是将第一个按钮的第一个文本存储在变量中,然后将第二个按钮的第二个文本存储在变量中。可以理解吗?好主意,问题是我使用的是OnClickListener,因此我以前对一个按钮的实现如下:public void onClick(View v){button b=(button)v;String text=b.getText.toString();使用这种方法,我只能从单击的第一个按钮获取和存储文本,除非我将所有值存储在一个数组中。你知道如何为每次读取创建button类型的对象吗?因为我在GridView中使用adapter,这实际上帮不了我多少忙:)我可以添加的代码不多,因为我认为我的qu中已经足够明确了估计:适配器,GridView,生成按钮:)但是谢谢你的提示
String mValue1, mValue2;
boolean isOneClicked = false;

onItemClickedListener(item, position){
if(!isOneClicked){
  mValue1 = item.stringValue;
  isOneClicked = true;
}
else{
  mValue2 = item.stringValue;
  //do whatever you want here
  //Reset when done
  mValue1 = "";
  mValue2 = "";
  isOneClicked = false;
}
}