Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/200.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
IF语句计数++;在android studio中使用java firebase_Java_Android_If Statement_Firebase - Fatal编程技术网

IF语句计数++;在android studio中使用java firebase

IF语句计数++;在android studio中使用java firebase,java,android,if-statement,firebase,Java,Android,If Statement,Firebase,我怎样才能在java android fire base上设置与此相关的函数。我正在创建一个聊天应用程序,我有一个类似这样的现有fire base结构。假设我发送一条消息“你好”” 我想设置一个push函数,它将统计每个用户的消息数。所以就是这样。假设我发了一条信息,说“你好”,马上回来 Chat: Author:"name" Chat:"hi?" numMessages: 1 Chat: Author:"name" Chat:"Be right bac

我怎样才能在java android fire base上设置与此相关的函数。我正在创建一个聊天应用程序,我有一个类似这样的现有fire base结构。假设我发送一条消息“你好”

我想设置一个push函数,它将统计每个用户的消息数。所以就是这样。假设我发了一条信息,说“你好”,马上回来

Chat:
    Author:"name"
    Chat:"hi?"
    numMessages: 1

Chat:
    Author:"name"
    Chat:"Be right back"
    numMessages: 2
我认为是if语句count++?但是我试过了关于这个的一切。
Java和Android大师希望您能给我一些建议,先生

全局int变量:
int计数器=0
在onClick中添加:
counter++
只要您愿意,就将计数器设置为0,否则它将继续计数-并且只有在重新创建活动时才设置为0

如果要将其发送到firebase,则需要将计数器添加到firebase,并将其与您的消息一起发送,使用名为“counter”的int更新Message.class(与字符串“author”和“Message”类似),发送它将被发送并显示在您的聊天中

这回答了你的问题吗

更新:

首先,进入
Message.class
并添加:

int counter;

public int getCounter(){
    return counter;
}

public void setCounter(int counter){
    this.counter = counter;
}
如果要在视图中显示计数器,只需在
fragment\u message.xml
中添加另一个文本视图,或者可以在
MessageAdapter.java
加载项populateView中以编程方式将其添加到消息中:

//if you added an extra TextView in your fragment_message.xml
TextView counter = (TextView) view.findViewById(R.id.yourcounterid);

counter.setText(message.getCounter());

//if you want to add the number in your messageView:
messageView.setText(message.getMessage() + " " + message.getCounter());
因此,对于您的
MainActivity.java

public class MainActivity extends AppCompatActivity{


private EditText editText;
private ListView listView;


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

    counter = 0;
    Firebase.setAndroidContext(this);
    final Firebase firebase = new Firebase("https://samp-is.firebaseio.com/");


    editText = (EditText) findViewById(R.id.editText);
    listView = (ListView) findViewById(R.id.listView);

    listView.setAdapter(new MessageAdapter(this, Message.class, R.layout.fragment_message, firebase.child("chat")));

    Button button = (Button) findViewById(R.id.button);

    button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            counter++;

            Message message = new Message();

            message.setMessage(editText.getText().toString());
            editText.setText("");
            message.setAuthor("Name");
            message.setCounter(counter);
            firebase.child("chat").push().setValue(message);


        }
        });
    }
}
如果我没记错的话,Firebase应该在其数据库中添加一个子“计数器”,并用您的计数器值更新它。
它能工作吗?

也许你可以在onClick中添加一个计数器,如果你愿意,你可以将该数字发送到firebase,如果你愿意的话。只需在oncreate中初始化一个int,并在每个按钮上增加它。这是怎么回事?我不知道我在send按钮上设置了onClick,如果你要发送消息,它会在firebase上保存为e上面的例子。我的问题是如何执行一个没有布局设计的oncreate按钮,因为它只会计算我的消息的数量。呃,怎么做,@amy你想计算所有消息,还是只计算一个用户的消息?一个用户的消息@amy将显示我的完整代码,看看它是如何显示的。我确实把所有代码都放进去了,它是w我会显示问题,代码方面没有问题。只是我不知道如何在每次我向特定人发送消息时,将count++放在onCLick上以增加用户数量。谢谢@amy,它帮助了我很多,而且有效。你带我穿过黑暗lmao。谢谢!firebase btw上没有显示数字消息,如果我将像作者和消息字符串一样放进去。我将为此做一个布局,这是不推荐的。那是怎么回事?我建议你看看firebase文档,这里有解释,我认为:
public class MainActivity extends AppCompatActivity{


private EditText editText;
private ListView listView;


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

    counter = 0;
    Firebase.setAndroidContext(this);
    final Firebase firebase = new Firebase("https://samp-is.firebaseio.com/");


    editText = (EditText) findViewById(R.id.editText);
    listView = (ListView) findViewById(R.id.listView);

    listView.setAdapter(new MessageAdapter(this, Message.class, R.layout.fragment_message, firebase.child("chat")));

    Button button = (Button) findViewById(R.id.button);

    button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            counter++;

            Message message = new Message();

            message.setMessage(editText.getText().toString());
            editText.setText("");
            message.setAuthor("Name");
            message.setCounter(counter);
            firebase.child("chat").push().setValue(message);


        }
        });
    }
}