gpt4 book ai didi

java - 从 ListView 启动新 Activity

转载 作者:行者123 更新时间:2023-12-01 10:36:01 25 4
gpt4 key购买 nike

因此,我设置了一个 ListView ,它从 strings.xml 文件中的字符串数组中填充自身,但我似乎不知道如何对其进行编码,以便点击/单击列表启动一个新 Activity 。我知道这个主题已经存在,但似乎我以不同的方式设置我的 ListView ,因此所提供的解决方案不兼容。这是我的 mainactivity.java 代码:

public class MainActivity extends AppCompatActivity implements OnClickListener {
Map<String, Integer> mapIndex;
ListView consoleList;
/**
* ATTENTION: This was auto-generated to implement the App Indexing API.
* See https://g.co/AppIndexing/AndroidStudio for more information.
*/
private GoogleApiClient client;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

String[] consoles = getResources().getStringArray(R.array.consoles_array);

Arrays.asList(consoles);

consoleList = (ListView) findViewById(R.id.list_consoles);
consoleList.setAdapter(new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, consoles));

getIndexList(consoles);

displayIndex();
// ATTENTION: This was auto-generated to implement the App Indexing API.
// See https://g.co/AppIndexing/AndroidStudio for more information.
client = new GoogleApiClient.Builder(this).addApi(AppIndex.API).build();
}

private void getIndexList(String[] consoles) {
mapIndex = new LinkedHashMap<String, Integer>();
for (int i = 0; i < consoles.length; i++) {
String console = consoles[i];
String index = console.substring(0, 1);

if (mapIndex.get(index) == null)
mapIndex.put(index, i);
}
}

private void displayIndex() {
LinearLayout indexLayout = (LinearLayout) findViewById(R.id.side_index);

TextView textView;
List<String> indexList = new ArrayList<String>(mapIndex.keySet());
for (String index : indexList) {
textView = (TextView) getLayoutInflater().inflate(
R.layout.side_index_item, null);
textView.setText(index);
textView.setOnClickListener(this);
indexLayout.addView(textView);
}
}

public void onClick(View view) {
TextView selectedIndex = (TextView) view;
consoleList.setSelection(mapIndex.get(selectedIndex.getText()));
}


@Override
public void onStart() {
super.onStart();

// ATTENTION: This was auto-generated to implement the App Indexing API.
// See https://g.co/AppIndexing/AndroidStudio for more information.
client.connect();
Action viewAction = Action.newAction(
Action.TYPE_VIEW, // TODO: choose an action type.
"Main Page", // TODO: Define a title for the content shown.
// TODO: If you have web page content that matches this app activity's content,
// make sure this auto-generated web page URL is correct.
// Otherwise, set the URL to null.
Uri.parse("http://host/path"),
// TODO: Make sure this auto-generated app deep link URI is correct.
Uri.parse("android-app://com.tylerfrisbee.gamerguide/http/host/path")
);
AppIndex.AppIndexApi.start(client, viewAction);
}

@Override
public void onStop() {
super.onStop();

// ATTENTION: This was auto-generated to implement the App Indexing API.
// See https://g.co/AppIndexing/AndroidStudio for more information.
Action viewAction = Action.newAction(
Action.TYPE_VIEW, // TODO: choose an action type.
"Main Page", // TODO: Define a title for the content shown.
// TODO: If you have web page content that matches this app activity's content,
// make sure this auto-generated web page URL is correct.
// Otherwise, set the URL to null.
Uri.parse("http://host/path"),
// TODO: Make sure this auto-generated app deep link URI is correct.
Uri.parse("android-app://com.tylerfrisbee.gamerguide/http/host/path")
);
AppIndex.AppIndexApi.end(client, viewAction);
client.disconnect();
}

}

最佳答案

您可以调用setOnItemClickListener在 ListView 上:

consoleList.setOnItemClickListener(new AdapterView.OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id){
//do whatever you want to do if you want to start a new Activity:
Intent intent = new Intent(MainActivity.this, MyActivity.class);
startActivity(intent);
}
});

当您单击 ListView 中的项目时,这应该填充 onItemClick 方法,并且如果您想要这样做,则应该调用您的 onClick 方法。

关于java - 从 ListView 启动新 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34731005/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com