Android Listview仅为第一个位置设置文本
Listview仅在第一个位置设置文件名。即使单击listview的任何位置,它也只为第一个位置设置文件名。请让我知道我需要做哪些更改,以便仅在单击的项目上正确设置文件名,而不是始终在第一个项目上。提前感谢。我在回收视图中也做了同样的操作,我正在与您共享我的项目代码Android Listview仅为第一个位置设置文本,android,android-listview,Android,Android Listview,Listview仅在第一个位置设置文件名。即使单击listview的任何位置,它也只为第一个位置设置文件名。请让我知道我需要做哪些更改,以便仅在单击的项目上正确设置文件名,而不是始终在第一个项目上。提前感谢。我在回收视图中也做了同样的操作,我正在与您共享我的项目代码 package com.deepak.myapplication; public class DocumentActivity extends AppCompatActivity implements View.OnClickL
package com.deepak.myapplication;
public class DocumentActivity extends AppCompatActivity implements
View.OnClickListener {
ImageView toolbar_back;
TextView next, tvDocName;
RecyclerView listView;
ArrayList<Survey_vehiclepojo> mylist = new ArrayList();
My_document_adapter adapter;
private int position;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//toolbar_back = ( ImageView ) findViewById(R.id.toolbar_back);
//toolbar_back.setOnClickListener(this);
//next = ( TextView ) findViewById(R.id.next);
//next.setOnClickListener(this);
listView = findViewById(R.id.recycleView);
mylist.add(new Survey_vehiclepojo("Pay Slip", "file1"));
mylist.add(new Survey_vehiclepojo("Insurance", "file2"));
mylist.add(new Survey_vehiclepojo("NA Certificate", "file3"));
mylist.add(new Survey_vehiclepojo("NA 1", "file3"));
mylist.add(new Survey_vehiclepojo("NA 2", "file3"));
mylist.add(new Survey_vehiclepojo("NA 3", "file3"));
listView.setLayoutManager(new LinearLayoutManager(this));
adapter = new My_document_adapter(mylist, DocumentActivity.this);
listView.setAdapter(adapter);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
/*case R.id.toolbar_back:
finish();
break;
case R.id.next:
Intent n=new Intent(DocumentActivity.this, Loan_checklistActivity.class);
startActivity(n);
break;
}*/
}
}
public void Document(int pos) {
position = pos;
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("*/*");
startActivityForResult(intent, position);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
selectedFile(data, requestCode);
}
private void selectedFile(Intent data, int position) {
String displayName = null;
if (data != null) {
Uri uri = data.getData();
String uriString = null;
if (uri != null) {
uriString = uri.toString();
}
File myFile = new File(uriString);
String path = myFile.getAbsolutePath();
if (uriString != null) {
if (uriString.startsWith("content://")) {
try (Cursor cursor = DocumentActivity.this.getContentResolver().query(uri, null, null, null, null)) {
if (cursor != null && cursor.moveToFirst()) {
displayName = cursor.getString(cursor.getColumnIndex(OpenableColumns.DISPLAY_NAME));
tvDocName = findViewById(R.id.tvDocName);
Survey_vehiclepojo selected = mylist.get(position);
selected.setFile1(displayName);
//My_document_adapter.display(displayName,position);
adapter.notifyDataSetChanged();
}
}
}
} else if (uriString.startsWith("file://")) {
displayName = myFile.getName();
tvDocName = findViewById(R.id.tvDocName);
Survey_vehiclepojo selected = mylist.get(position);
selected.setFile1(displayName);
//My_document_adapter.display(displayName,position);
adapter.notifyDataSetChanged();
}
}
}
package com.deepak.myapplication;
公共类DocumentActivity扩展了AppCompatActivity实现
View.OnClickListener{
图像视图工具栏返回;
TextView下一步,tvDocName;
回收视图列表视图;
ArrayList mylist=新的ArrayList();
我的文档适配器;
私人职位;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//toolbar\u back=(ImageView)findviewbyd(R.id.toolbar\u back);
//toolbar\u back.setOnClickListener(此);
//next=(TextView)findViewById(R.id.next);
//next.setOnClickListener(this);
listView=findViewById(R.id.recycleView);
mylist.add(新调查车项目(“工资单”、“文件1”);
mylist.add(新调查车辆项目(“保险”、“文件2”);
mylist.add(新调查车辆项目(“NA证书”、“文件3”);
mylist.add(新调查车项目(“NA 1”、“文件3”);
mylist.add(新调查车辆项目(“NA 2”、“文件3”);
mylist.add(新调查车项目(“NA 3”、“文件3”);
setLayoutManager(新的LinearLayoutManager(this));
adapter=新的My_document_adapter(mylist,DocumentActivity.this);
setAdapter(适配器);
}
@凌驾
公共void onClick(视图v){
开关(v.getId()){
/*案例R.id.U返回:
完成();
打破
案例R.id.next:
意向n=新意向(DocumentActivity.this,Loan\u checklistActivity.class);
星触觉(n);
打破
}*/
}
}
公共作废文件(int pos){
位置=位置;
意向意向=新意向(意向.行动\u获取\u内容);
intent.setType(“*/*”);
startActivityForResult(意图、位置);
}
@凌驾
受保护的void onActivityResult(int请求代码、int结果代码、意图数据){
super.onActivityResult(请求代码、结果代码、数据);
所选文件(数据、请求代码);
}
私有void selectedFile(意图数据,整数位置){
字符串displayName=null;
如果(数据!=null){
Uri=data.getData();
字符串uriString=null;
if(uri!=null){
uriString=uri.toString();
}
File myFile=新文件(uriString);
字符串路径=myFile.getAbsolutePath();
if(uriString!=null){
if(uriString.startsWith(“content://”){
try(Cursor Cursor=DocumentActivity.this.getContentResolver().query(uri,null,null,null,null)){
if(cursor!=null&&cursor.moveToFirst()){
displayName=cursor.getString(cursor.getColumnIndex(OpenableColumns.DISPLAY_NAME));
tvDocName=findViewById(R.id.tvDocName);
所选的调查车项目=mylist.get(位置);
已选择。setFile1(显示名称);
//My_document_adapter.display(显示名称、位置);
adapter.notifyDataSetChanged();
}
}
}
}else if(uriString.startsWith(“文件:/”){
displayName=myFile.getName();
tvDocName=findViewById(R.id.tvDocName);
所选的调查车项目=mylist.get(位置);
已选择。setFile1(显示名称);
//My_document_adapter.display(显示名称、位置);
adapter.notifyDataSetChanged();
}
}
}
}
这是适配器
class My_document_adapter extends
RecyclerView.Adapter<My_document_adapter.ViewHolder>{
ArrayList<Survey_vehiclepojo> mylist;
DocumentActivity documentActivity;
public My_document_adapter(ArrayList<Survey_vehiclepojo> mylist,
DocumentActivity documentActivity) {
this.mylist = mylist;
this.documentActivity = documentActivity;
}
@NonNull
@Override
public My_document_adapter.ViewHolder onCreateViewHolder(@NonNull ViewGroup
parent, int viewType) {
View itemView = LayoutInflater.from(parent.getContext())
.inflate(R.layout.item, parent, false);
return new My_document_adapter.ViewHolder(itemView);
}
@Override
public void onBindViewHolder(@NonNull My_document_adapter.ViewHolder holder,
final int position) {
holder.name.setText("name"+position);
holder.ivDocument.setOnClickListener(new View.OnClickListener() {
@Override public void onClick(View view) {
Log.d("**Postion", "Postion: "+position);
documentActivity.Document(position);
} });
}
@Override
public int getItemCount() {
return mylist.size();
}
public class ViewHolder extends RecyclerView.ViewHolder {
final TextView tvDocName,name;
ImageView ivDocument;
public ViewHolder(@NonNull View view) {
super(view);
name = view.findViewById(R.id.tvName);
tvDocName = view.findViewById(R.id.tvDocName);
ivDocument = view.findViewById(R.id.ivDocument);
}
}
}
class My_document_适配器扩展
RecyclerView.适配器{
ArrayList mylist;
文献活动文献活动;
公共我的文档适配器(ArrayList mylist,
文档活动(文档活动){
this.mylist=mylist;
this.documentActivity=文件活动;
}
@非空
@凌驾
public My_document_adapter.ViewHolder onCreateViewHolder(@NonNull ViewGroup
父对象,int视图类型){
View itemView=LayoutInflater.from(parent.getContext())
.充气(右布局项,父项,假);
返回新的My_document_adapter.ViewHolder(itemView);
}
@凌驾
public void onBindViewHolder(@NonNull My_document_adapter.ViewHolder,
最终int位置){
holder.name.setText(“名称”+位置);
holder.ivDocument.setOnClickListener(新视图.OnClickListener(){
@覆盖公共void onClick(视图){
日志d(“**位置”,“位置:+位置”);
文件活动。文件(职位);
} });
}
@凌驾
public int getItemCount(){
返回mylist.size();
}
公共类ViewHolder扩展了RecyclerView.ViewHolder{
最终文本视图tvDocName,名称;
ImageView文件;
公共视图持有者(@NonNull视图){
超级(视图);
name=view.findviewbyd(R.id.tvName);
tvDocName=view.findviewbyd(R.id.tvDocName);
ivDocument=view.findviewbyd(R.id.ivDocument);
}
}
}
我的文件正在选择查看此屏幕截图尝试在onClick methodivDocument.setOnClickListener(新视图.OnClickListener(){@Override public void onClick(视图视图){Log.d(“**position”,“position:“+position”);((DocumentActivity)context.Document(position);//tvDocName.setText;}};onActivityResult您是否获得相同的位置??如果我没有说错,您希望listview中的文档路径位于该位置??如果是,则您可以进行调查\u vehiclepojo selected=mylist.get(位置);selected.setPath(路径);adapter.notifyDataSetChanged();不,它甚至没有设置文件名。你能确切地告诉我你想要什么吗?你想要显示文件文本或文件为图像???我只想要文件名t