Есть ли способ изменить переменную класса из внутреннего метода - PullRequest
0 голосов
/ 20 июня 2020

У меня есть ListView ниже с ArrayAdapter, чтобы сделать простое представление списка с соответствующими Html элементами, добавленными в assets папку.

import android.app.ListActivity;

import android.os.Bundle;

import android.view.View;

import android.widget.ArrayAdapter;

import android.widget.ListView;

import android.widget.Toast;

import android.content.Intent;


public class MainActivity extends ListActivity

{


String indx;

    String[] values = { "index", "Prooo", "My Android Examples","My Android Tutorials","My Android Pages", "My Android Favorites"};



    @Override

    public void onCreate(Bundle savedInstanceState)

    {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.main);



        // parameters are (Context, layout for the row, and the array of data)

        setListAdapter(new ArrayAdapter<String>(this,

                                                android.R.layout.simple_list_item_1, values));

    }

    
    @Override

    public void onListItemClick(ListView l, View v, int position, long id)

    {
        indx = (String) getListAdapter().getItem(position);
        Toast.makeText(this,indx,Toast.LENGTH_SHORT).show();
        Intent i=new Intent(MainActivity.this,WebViewActivity.class);
        startActivity(i);

    }
    
    
    



}

Все остальное работает нормально, но цель состоит в том, чтобы изменить значение String indx на элемент Position , возвращаемый onListItemClick , поскольку имя каждого документа Html совпадает с именем каждой строки values ​​ item.

Мне надоело получить доступ к indx из класса WebViewActivity, чтобы отобразить Html, но значение String indx по-прежнему Null .

Я бы указал что-то вроде Publi c indx , если бы это было Python, пожалуйста, есть ли способ изменить Indx как в Java, и я не могу использовать return , потому что void не может вернуть

1 Ответ

1 голос
/ 20 июня 2020

Для доступа к индексу в WebViewActivity. Вам необходимо передать значение через намерение, как показано ниже,

 Intent i=new Intent(MainActivity.this,WebViewActivity.class);
i.putExtra("index",indx);      
startActivity(i);

Для получения вашей строки в WebViewActivity используйте приведенный ниже код в WebViewActivity, добавьте ниже код в Oncreate of WebViewActivity

String index=getIntent().getStringExtra("index");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...