【问题标题】:IF statement count++ in android studio using java firebase使用 java firebase 在 android studio 中的 IF 语句 count++
【发布时间】:2015-10-22 07:34:55
【问题描述】:

如何在 java android fire-base 上放置一个关于这个的函数。我正在创建一个聊天应用程序,并且我有一个像这样的现有火基结构。假设我发送了一条消息“Hello”。

Chat:
    Author:"name"
    Chat:"Hello"

我想添加一个函数来计算每个用户的消息数量。因此会是这样。假设我发送一条消息说嗨?和马上回来

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

Chat:
    Author:"name"
    Chat:"Be right back"
    numMessages: 2

我认为是 if 语句 count++?但我尝试了关于this.ug的一切。 Java和Android高手希望各位高手给我一些建议。

【问题讨论】:

  • 也许您可以在 onClick 中添加一个计数器,如果您愿意,可以将该号码发送到 Firebase。只需在 oncreate 中初始化一个 int,并在每次单击按钮时增加它
  • 怎么样。?我想知道我在发送按钮上设置了一个 onClick,如果你要发送一条消息,它将像上面的示例一样保存在 firebase 上。我的问题是如何执行没有 Layout design 的 oncreate 按钮,因为它只会计算我的消息数。呃,怎么办,@Amy
  • 您要统计所有消息,还是只统计一个用户的消息?
  • 一位用户@Amy 的消息

标签: java android if-statement firebase


【解决方案1】:

全局 int 变量:int counter = 0;
在您的 onClick 中添加:counter++; 随时将计数器设置为 0,否则它将一直计数 - 并且仅在重新创建活动时设置为 0。

如果您想将其发送到 firebase,您需要将计数器添加到那里,然后将其与您的消息一起发送,使用名为“counter”的 int 更新您的 Message.class(类似于 Strings“作者" 和 "message",发送它会被发送并显示在您的聊天中。

这能回答你的问题吗?

更新:

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

int counter;

public int getCounter(){
    return counter;
}

public void setCounter(int counter){
    this.counter = counter;
}

如果您想在您的视图中显示计数器,您可以简单地在您的fragment_message.xml 中添加另一个 TextView,或者您可以在您的消息中以编程方式添加它,在您的 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 上放置 count++ 以增加每次我向特定人发送消息时的用户数。
  • 感谢@amy,它对我有很大帮助,而且很有效。你带我走出黑暗 lmao。谢谢!
  • 顺便说一句,numMessages 不会显示在 firebase 上,如果我会像作者和消息字符串一样放置的话。我会为此做一个布局,它不推荐。那是怎么回事?
  • 我建议你查看 firebase 文档,那里有解释,我认为:firebase.com/docs/android/guide/saving-data.html
猜你喜欢
  • 1970-01-01
  • 2016-05-21
  • 1970-01-01
  • 1970-01-01
  • 2012-08-13
  • 1970-01-01
  • 1970-01-01
  • 2012-01-18
  • 2012-12-13
相关资源
最近更新 更多