2016-07-29 9 views
0

私はlistviewの2行の項目:ユーザーIDとユーザー名を持っています。いずれかの行がクリックされたときにlistviewからユーザーIDのみを取り出す方法は?Android - ListViewレイアウト2行のリストアイテム

public class MainActivity extends AppCompatActivity { 

private DatabaseReference mUsers; 
String getValue = null; 
ListView lvUsers = (ListView) findViewById(R.id.lvUsers); 

@Override 
protected void onCreate(Bundle savedInstanceState) { 

    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 


    mUsers = FirebaseDatabase.getInstance.getReference().child(Constants.FIREBASE_USERS); 

    FirebaseListAdapter<Users> adapter = new FirebaseListAdapter<Users>(
      this, Users.class, android.R.layout.two_line_list_item, mUsers 
    ) { 
      @Override 
      protected void populateView(View v, Users user, int pos) { 
      ((TextView)v.findViewById(android.R.id.text1)).setText(user.getUserID()); 
      ((TextView)v.findViewById(android.R.id.text2)).setText(user.getUsername()); 
      } 
    }; 

    lvUsers.setAdapter(adapter); 
    setupListViewMenu(); 
} 

private void setupListViewMenu() { 
    lvUsers.setOnItemLongClickListener(
      new AdapterView.OnItemLongClickListener() { 
     @Override 
     public boolean onItemLongClick(AdapterView<?> adapter, 
             View item, int pos, long id) { 

      // How to retrieve only User ID from here? 
      getValue = ((TextView)view).getText().toString(); 

      return true; 
     } 

    }); 
} 
} 

listviewのデータはFirebaseデータベースからのものです。 for loopを使用して取得するのは唯一の方法ですか?私は二次元配列をループする必要がありますか?ありがとう

答えて

1

あなたは下のコードを試してください。

getValue = ((TextView)item.findViewById(android.R.id.text2)).getText().toString(); 

私はそれが

の作品を願って...

ViewがclickListenerで受信)android.R.id.text2itemのチャイルズの一つであると考えている。しかしテストする必要があります

関連する問題