Why does the debug report logs “Attempted to finish an input event but the input event receiver has already...
I am using a List with ArrayAdapter for the spinner. But on selecting the spinner, the W/InputEventReceiver logs that the input event receiver has already been disposed
The adapter works fine when created with the method .createFromResource() and a static Array of string, but does not seem to work with the List of Strings.
This is My Activity Code
package club.bms.keshav.readersreserve;
import android.support.annotation.NonNull;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.ValueEventListener;
import java.util.ArrayList;
import java.util.List;
public class TempActivity extends AppCompatActivity implements AdapterView.OnItemSelectedListener {
private List<CharSequence> userList = new ArrayList<>();
private ArrayAdapter<CharSequence> adapter;
private Spinner spinner;
private static final String TAG = "TempActivity";
private String temp;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_temp);
userList.clear();
DatabaseReference rootReference = FirebaseDatabase.getInstance().getReference();
rootReference.child(ConstantFields.DATABASE_USER_LIST).addValueEventListener(new ValueEventListener() {
String temp;
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for(DataSnapshot dataSnapshot1: dataSnapshot.getChildren())
{
temp = dataSnapshot1.child(ConstantFields.DATABASE_USER_NAME).getValue(String.class);
userList.add(temp);
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
spinner = (Spinner) findViewById(R.id.tempSpinner);
adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, userList);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
spinner.setPrompt("SELECT THE CURRENT HOLDER OF THE BOOK");
Log.d(TAG, "onCreate: Adapter Set");
spinner.setOnItemSelectedListener(this);
}
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
Log.d(TAG, "onItemSelected: ");
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
Log.d(TAG, "onNothingSelected: ");
}
}
None of the log statements get printed in the itemselectedlistener methods.
This is the log statement that gets printed on clicking the spinner.
W/InputEventReceiver: Attempted to finish an input event but the input event receiver has already been disposed.
The spinner just expands on clicking.
Before Clicking the Spinner
After Clicking the Spinner
java android android-studio android-spinner
add a comment |
I am using a List with ArrayAdapter for the spinner. But on selecting the spinner, the W/InputEventReceiver logs that the input event receiver has already been disposed
The adapter works fine when created with the method .createFromResource() and a static Array of string, but does not seem to work with the List of Strings.
This is My Activity Code
package club.bms.keshav.readersreserve;
import android.support.annotation.NonNull;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.ValueEventListener;
import java.util.ArrayList;
import java.util.List;
public class TempActivity extends AppCompatActivity implements AdapterView.OnItemSelectedListener {
private List<CharSequence> userList = new ArrayList<>();
private ArrayAdapter<CharSequence> adapter;
private Spinner spinner;
private static final String TAG = "TempActivity";
private String temp;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_temp);
userList.clear();
DatabaseReference rootReference = FirebaseDatabase.getInstance().getReference();
rootReference.child(ConstantFields.DATABASE_USER_LIST).addValueEventListener(new ValueEventListener() {
String temp;
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for(DataSnapshot dataSnapshot1: dataSnapshot.getChildren())
{
temp = dataSnapshot1.child(ConstantFields.DATABASE_USER_NAME).getValue(String.class);
userList.add(temp);
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
spinner = (Spinner) findViewById(R.id.tempSpinner);
adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, userList);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
spinner.setPrompt("SELECT THE CURRENT HOLDER OF THE BOOK");
Log.d(TAG, "onCreate: Adapter Set");
spinner.setOnItemSelectedListener(this);
}
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
Log.d(TAG, "onItemSelected: ");
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
Log.d(TAG, "onNothingSelected: ");
}
}
None of the log statements get printed in the itemselectedlistener methods.
This is the log statement that gets printed on clicking the spinner.
W/InputEventReceiver: Attempted to finish an input event but the input event receiver has already been disposed.
The spinner just expands on clicking.
Before Clicking the Spinner
After Clicking the Spinner
java android android-studio android-spinner
provide the code you are using
– divaPrajapati09
Jan 1 at 9:52
The code in the activity is the code itself
– Rohit Sharma
Jan 1 at 13:34
your code is absolutely working fine... you just need to notify your adapter when you get the database from firebase. Also dont forget to check if adapter is null
– divaPrajapati09
Jan 2 at 5:04
add a comment |
I am using a List with ArrayAdapter for the spinner. But on selecting the spinner, the W/InputEventReceiver logs that the input event receiver has already been disposed
The adapter works fine when created with the method .createFromResource() and a static Array of string, but does not seem to work with the List of Strings.
This is My Activity Code
package club.bms.keshav.readersreserve;
import android.support.annotation.NonNull;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.ValueEventListener;
import java.util.ArrayList;
import java.util.List;
public class TempActivity extends AppCompatActivity implements AdapterView.OnItemSelectedListener {
private List<CharSequence> userList = new ArrayList<>();
private ArrayAdapter<CharSequence> adapter;
private Spinner spinner;
private static final String TAG = "TempActivity";
private String temp;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_temp);
userList.clear();
DatabaseReference rootReference = FirebaseDatabase.getInstance().getReference();
rootReference.child(ConstantFields.DATABASE_USER_LIST).addValueEventListener(new ValueEventListener() {
String temp;
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for(DataSnapshot dataSnapshot1: dataSnapshot.getChildren())
{
temp = dataSnapshot1.child(ConstantFields.DATABASE_USER_NAME).getValue(String.class);
userList.add(temp);
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
spinner = (Spinner) findViewById(R.id.tempSpinner);
adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, userList);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
spinner.setPrompt("SELECT THE CURRENT HOLDER OF THE BOOK");
Log.d(TAG, "onCreate: Adapter Set");
spinner.setOnItemSelectedListener(this);
}
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
Log.d(TAG, "onItemSelected: ");
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
Log.d(TAG, "onNothingSelected: ");
}
}
None of the log statements get printed in the itemselectedlistener methods.
This is the log statement that gets printed on clicking the spinner.
W/InputEventReceiver: Attempted to finish an input event but the input event receiver has already been disposed.
The spinner just expands on clicking.
Before Clicking the Spinner
After Clicking the Spinner
java android android-studio android-spinner
I am using a List with ArrayAdapter for the spinner. But on selecting the spinner, the W/InputEventReceiver logs that the input event receiver has already been disposed
The adapter works fine when created with the method .createFromResource() and a static Array of string, but does not seem to work with the List of Strings.
This is My Activity Code
package club.bms.keshav.readersreserve;
import android.support.annotation.NonNull;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.ValueEventListener;
import java.util.ArrayList;
import java.util.List;
public class TempActivity extends AppCompatActivity implements AdapterView.OnItemSelectedListener {
private List<CharSequence> userList = new ArrayList<>();
private ArrayAdapter<CharSequence> adapter;
private Spinner spinner;
private static final String TAG = "TempActivity";
private String temp;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_temp);
userList.clear();
DatabaseReference rootReference = FirebaseDatabase.getInstance().getReference();
rootReference.child(ConstantFields.DATABASE_USER_LIST).addValueEventListener(new ValueEventListener() {
String temp;
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for(DataSnapshot dataSnapshot1: dataSnapshot.getChildren())
{
temp = dataSnapshot1.child(ConstantFields.DATABASE_USER_NAME).getValue(String.class);
userList.add(temp);
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
spinner = (Spinner) findViewById(R.id.tempSpinner);
adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, userList);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
spinner.setPrompt("SELECT THE CURRENT HOLDER OF THE BOOK");
Log.d(TAG, "onCreate: Adapter Set");
spinner.setOnItemSelectedListener(this);
}
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
Log.d(TAG, "onItemSelected: ");
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
Log.d(TAG, "onNothingSelected: ");
}
}
None of the log statements get printed in the itemselectedlistener methods.
This is the log statement that gets printed on clicking the spinner.
W/InputEventReceiver: Attempted to finish an input event but the input event receiver has already been disposed.
The spinner just expands on clicking.
Before Clicking the Spinner
After Clicking the Spinner
java android android-studio android-spinner
java android android-studio android-spinner
edited Jan 1 at 10:01
Rohit Sharma
asked Jan 1 at 9:45
Rohit SharmaRohit Sharma
154
154
provide the code you are using
– divaPrajapati09
Jan 1 at 9:52
The code in the activity is the code itself
– Rohit Sharma
Jan 1 at 13:34
your code is absolutely working fine... you just need to notify your adapter when you get the database from firebase. Also dont forget to check if adapter is null
– divaPrajapati09
Jan 2 at 5:04
add a comment |
provide the code you are using
– divaPrajapati09
Jan 1 at 9:52
The code in the activity is the code itself
– Rohit Sharma
Jan 1 at 13:34
your code is absolutely working fine... you just need to notify your adapter when you get the database from firebase. Also dont forget to check if adapter is null
– divaPrajapati09
Jan 2 at 5:04
provide the code you are using
– divaPrajapati09
Jan 1 at 9:52
provide the code you are using
– divaPrajapati09
Jan 1 at 9:52
The code in the activity is the code itself
– Rohit Sharma
Jan 1 at 13:34
The code in the activity is the code itself
– Rohit Sharma
Jan 1 at 13:34
your code is absolutely working fine... you just need to notify your adapter when you get the database from firebase. Also dont forget to check if adapter is null
– divaPrajapati09
Jan 2 at 5:04
your code is absolutely working fine... you just need to notify your adapter when you get the database from firebase. Also dont forget to check if adapter is null
– divaPrajapati09
Jan 2 at 5:04
add a comment |
1 Answer
1
active
oldest
votes
rootReference.child(ConstantFields.DATABASE_USER_LIST).addValueEventListener(new ValueEventListener() {
String temp;
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for(DataSnapshot dataSnapshot1: dataSnapshot.getChildren())
{
temp = dataSnapshot1.child(ConstantFields.DATABASE_USER_NAME).getValue(String.class);
userList.add(temp);
if(adapter!=null){
adapter.notifyDataSetChanged();
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
This works perfectly fine thank you. But do we need to call notifyDataSetChanged(), after every addition or would it work the same if call this method outside the loop?
– Rohit Sharma
Jan 2 at 6:33
It works the same if i notify the adapter after the formation of the list.
– Rohit Sharma
Jan 2 at 6:40
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53994441%2fwhy-does-the-debug-report-logs-attempted-to-finish-an-input-event-but-the-input%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
rootReference.child(ConstantFields.DATABASE_USER_LIST).addValueEventListener(new ValueEventListener() {
String temp;
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for(DataSnapshot dataSnapshot1: dataSnapshot.getChildren())
{
temp = dataSnapshot1.child(ConstantFields.DATABASE_USER_NAME).getValue(String.class);
userList.add(temp);
if(adapter!=null){
adapter.notifyDataSetChanged();
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
This works perfectly fine thank you. But do we need to call notifyDataSetChanged(), after every addition or would it work the same if call this method outside the loop?
– Rohit Sharma
Jan 2 at 6:33
It works the same if i notify the adapter after the formation of the list.
– Rohit Sharma
Jan 2 at 6:40
add a comment |
rootReference.child(ConstantFields.DATABASE_USER_LIST).addValueEventListener(new ValueEventListener() {
String temp;
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for(DataSnapshot dataSnapshot1: dataSnapshot.getChildren())
{
temp = dataSnapshot1.child(ConstantFields.DATABASE_USER_NAME).getValue(String.class);
userList.add(temp);
if(adapter!=null){
adapter.notifyDataSetChanged();
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
This works perfectly fine thank you. But do we need to call notifyDataSetChanged(), after every addition or would it work the same if call this method outside the loop?
– Rohit Sharma
Jan 2 at 6:33
It works the same if i notify the adapter after the formation of the list.
– Rohit Sharma
Jan 2 at 6:40
add a comment |
rootReference.child(ConstantFields.DATABASE_USER_LIST).addValueEventListener(new ValueEventListener() {
String temp;
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for(DataSnapshot dataSnapshot1: dataSnapshot.getChildren())
{
temp = dataSnapshot1.child(ConstantFields.DATABASE_USER_NAME).getValue(String.class);
userList.add(temp);
if(adapter!=null){
adapter.notifyDataSetChanged();
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
rootReference.child(ConstantFields.DATABASE_USER_LIST).addValueEventListener(new ValueEventListener() {
String temp;
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for(DataSnapshot dataSnapshot1: dataSnapshot.getChildren())
{
temp = dataSnapshot1.child(ConstantFields.DATABASE_USER_NAME).getValue(String.class);
userList.add(temp);
if(adapter!=null){
adapter.notifyDataSetChanged();
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
answered Jan 2 at 5:06
divaPrajapati09divaPrajapati09
979
979
This works perfectly fine thank you. But do we need to call notifyDataSetChanged(), after every addition or would it work the same if call this method outside the loop?
– Rohit Sharma
Jan 2 at 6:33
It works the same if i notify the adapter after the formation of the list.
– Rohit Sharma
Jan 2 at 6:40
add a comment |
This works perfectly fine thank you. But do we need to call notifyDataSetChanged(), after every addition or would it work the same if call this method outside the loop?
– Rohit Sharma
Jan 2 at 6:33
It works the same if i notify the adapter after the formation of the list.
– Rohit Sharma
Jan 2 at 6:40
This works perfectly fine thank you. But do we need to call notifyDataSetChanged(), after every addition or would it work the same if call this method outside the loop?
– Rohit Sharma
Jan 2 at 6:33
This works perfectly fine thank you. But do we need to call notifyDataSetChanged(), after every addition or would it work the same if call this method outside the loop?
– Rohit Sharma
Jan 2 at 6:33
It works the same if i notify the adapter after the formation of the list.
– Rohit Sharma
Jan 2 at 6:40
It works the same if i notify the adapter after the formation of the list.
– Rohit Sharma
Jan 2 at 6:40
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53994441%2fwhy-does-the-debug-report-logs-attempted-to-finish-an-input-event-but-the-input%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
provide the code you are using
– divaPrajapati09
Jan 1 at 9:52
The code in the activity is the code itself
– Rohit Sharma
Jan 1 at 13:34
your code is absolutely working fine... you just need to notify your adapter when you get the database from firebase. Also dont forget to check if adapter is null
– divaPrajapati09
Jan 2 at 5:04