作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我为我的数据库中的每个名字创建了一个按钮,然后我应该在这个按钮上添加一个 onclick 函数,但我不知道 id 使用什么。我用 ???在代码中表示位置
public class Game extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.game);
ListView playersList=(ListView)findViewById(R.id.playersList);
MyDb db=new MyDb(getApplicationContext());
db.open();
Cursor c=db.fetchAllUsers();
startManagingCursor(c);
SimpleCursorAdapter adapter=new SimpleCursorAdapter(
this,
R.layout.user,
c,
new String[]{MyDb.UsersMetaData.USERS_NAME},
new int[]{R.id.namePlayer}
);
playersList.setAdapter(adapter);
db.close();
Button newUser;
newUser = (Button)findViewById(R.id.buttonNew);
newUser.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
MyDb db=new MyDb(getApplicationContext());
db.open();
EditText inserted = (EditText)findViewById(R.id.editName);
String nome = inserted.getText().toString();
db.insertUser(nome);
db.close();
}
});
Button chosen;
chosen = (Button)findViewById(R.id.???);
chosen.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
Intent myIntent = new Intent(view.getContext(), Game2.class);
startActivityForResult(myIntent, 0);
finish();
}
});
}
}
用户界面
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/sfondo"
android:layout_height="fill_parent"
android:layout_width="fill_parent"
android:background="@drawable/sfondo">
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal">
<EditText
android:id="@+id/editName"
android:text="@string/editName"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:lines="1"
android:width="180px" />
<Button
android:text="@string/newPlayer"
android:id="@+id/buttonNew"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:minWidth="70px" />
</LinearLayout>
<ListView
android:id="@+id/playersList"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
</LinearLayout>
</FrameLayout>
db 元素的 xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:layout_gravity="center_vertical"
>
<Button
android:id="@+id/namePlayer"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:minWidth="250px" />
</LinearLayout>
谢谢
最佳答案
所以按钮在 R.layout.user
中?如果是这样,我认为您可能需要扩展 SimpleCursorAdapter
并且在 getView()
方法中您可以找到 View 并添加监听器。像这样:
public class MyCursorAdapter extends SimpleCursorAdapter {
public MyCursorAdapter(...) {
super(...);
}
public void getView(int position, View convertView, ViewGroup parent) {
View view = super.getView(position, convertView, parent);
Button button = (Button) view.findViewById(R.id.???);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
...
}
});
}
}
这样,您的“查找”范围就限定在列表中的一行。您不能在当前拥有代码的位置添加监听器,因为会有多个具有相同 ID 的 View 。
关于android - 在不止一个对象上添加 onclick,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6181180/
我是一名优秀的程序员,十分优秀!