我正在尝试链接每个ListView条目的编辑按钮,以编辑与该按钮关联的特定条目。例如,对于填充一行的每个数据库条目,最右边的按钮允许您编辑条目。目前,代码使用onItemClickListener来选择整行本身但我想将其链接到行中的按钮,而不是必须选择整行。
这是我的MainActivity.java代码:
package com.example.project_input;
import java.util.ArrayList;
import java.util.HashMap;
import android.os.Bundle;
import android.app.ListActivity;
import android.content.Intent;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListAdapter;
import android.widget.SimpleAdapter;
import android.widget.TextView;
import android.widget.ListView;
public class MainActivity extends ListActivity {
Intent intent;
TextView projectId;
DBController controller = new DBController(this);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ArrayList<HashMap<String, String>> projectList = controller.getAllProjects();
if(projectList.size()!=0) {
ListView lv = getListView();
lv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,int position, long id) {
projectId = (TextView) view.findViewById(R.id.projectId);
String valProjectId = projectId.getText().toString();
Intent objIndent = new Intent(getApplicationContext(),EditProject.class);
objIndent.putExtra("projectId", valProjectId);
startActivity(objIndent);
}
});
ListAdapter adapter = new SimpleAdapter( MainActivity.this,projectList, R.layout.view_project_entry, new String[] { "projectId","projectName", "projectLocation"}, new int[] {R.id.projectId, R.id.projectName, R.id.projectLocation});
setListAdapter(adapter);
}
}
public void showAddForm(View view) {
Intent objIntent = new Intent(getApplicationContext(), NewProject.class);
startActivity(objIntent);
}
}
按钮的布局xml如下:
<Button
android:id="@+id/edit_button"
android:focusable="false"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_toLeftOf="@+id/add_details"
android:paddingRight=" 10dp"
android:text="Edit" />
对此的任何帮助都将非常感激。
答案 0 :(得分:0)
要在Button
可点击的行中设置ListView
,您需要在onClickListener
本身设置Button
。由于行项目Button
不是Android
附带的内容,因此您需要使用Button
创建自己的行。最简单的方法是为您的行创建.xml,对其进行充气并获取getView()
Adapter
中按钮的引用。