Android Listview仅为第一个位置设置文本

Android Listview仅为第一个位置设置文本,android,android-listview,Android,Android Listview,Listview仅在第一个位置设置文件名。即使单击listview的任何位置,它也只为第一个位置设置文件名。请让我知道我需要做哪些更改,以便仅在单击的项目上正确设置文件名,而不是始终在第一个项目上。提前感谢。我在回收视图中也做了同样的操作,我正在与您共享我的项目代码 package com.deepak.myapplication; public class DocumentActivity extends AppCompatActivity implements View.OnClickL

Listview仅在第一个位置设置文件名。即使单击listview的任何位置,它也只为第一个位置设置文件名。请让我知道我需要做哪些更改,以便仅在单击的项目上正确设置文件名,而不是始终在第一个项目上。提前感谢。

我在回收视图中也做了同样的操作,我正在与您共享我的项目代码

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