Android 单击列表项后,列表视图应显示文本视图

Android 单击列表项后,列表视图应显示文本视图,android,list,listview,textview,Android,List,Listview,Textview,作为一个初学者,我正在尝试开发一个简单的睡前故事应用程序(在Android上大约有10到30个故事) 这个想法是要有一个listview,其中每个列表项都显示故事的标题。-我不知道如何动态添加特定的标题(最好的方法是从.txt文件的标题中添加),因此每个列表项都成为名称“故事”+I(I表示计数的列表项) 在下一步中,如果点击一个项目(故事),应用程序应该只显示一个简单的文本视图,可以阅读完整的故事(大约200字) 正如你所见,我从网络上得到的获取故事文本的想法是将故事写在一个.txt文件中,按照

作为一个初学者,我正在尝试开发一个简单的睡前故事应用程序(在Android上大约有10到30个故事)

这个想法是要有一个listview,其中每个列表项都显示故事的标题。-我不知道如何动态添加特定的标题(最好的方法是从.txt文件的标题中添加),因此每个列表项都成为名称“故事”+I(I表示计数的列表项)

在下一步中,如果点击一个项目(故事),应用程序应该只显示一个简单的文本视图,可以阅读完整的故事(大约200字)

正如你所见,我从网络上得到的获取故事文本的想法是将故事写在一个.txt文件中,按照assests顺序,然后通过fileInpitStream读取

文本文件以第一个简单的名称命名,如“story1.txt”、“story2.txt”等

因此,我最大的问题是,当单击列表项时,如何将每个列表项与以下匹配的文本文件“-.txt”组合起来?

如果您需要任何进一步的信息(XML文件-但大部分是标准文件-或其他),请告诉我。我非常感谢我得到的每一个答案,以帮助我实现我的小想法

主要活动:

public class MainActivity extends ActionBarActivity {

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


List valueList = new ArrayList<String>();

//filling List Items
for(int i=1;i <30; i++){
    valueList.add("Story " +i);
}

//List Adapter
ListAdapter adapter = new ArrayAdapter<String>(getApplicationContext(),
        R.layout.custom_textview, valueList);  
final ListView lv = (ListView)findViewById(R.id.listView1);

lv.setAdapter(adapter);

lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {

@Override
public void onItemClick(AdapterView<?> parent, View view, int arg2, long arg3)
{
Intent intent = new Intent();
intent.setClassName(getPackageName(), getPackageName()+".ListViewShow");
intent.putExtra("selected", lv.getAdapter().getItem(arg2).toString());
startActivity(intent);
}
});

}
}
LogCat错误消息:
09-27 17:37:56.797:W/dalvikvm(5622):threadid=1:线程以未捕获异常退出(组=0x4163eba8)
09-27 17:37:56.827:E/AndroidRuntime(5622):致命异常:主
09-27 17:37:56.827:E/AndroidRuntime(5622):进程:fm.de.geschichten,PID:5622
09-27 17:37:56.827:E/AndroidRuntime(5622):android.content.ActivityNotFoundException:找不到显式活动类{fm.de.geschichen/fm.de.geschichten.ListViewShow};您在AndroidManifest.xml中声明过此活动吗?
09-27 17:37:56.827:E/AndroidRuntime(5622):在android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1628)
09-27 17:37:56.827:E/AndroidRuntime(5622):在android.app.Instrumentation.execStartActivity(Instrumentation.java:1424)
09-27 17:37:56.827:E/AndroidRuntime(5622):在android.app.Activity.startActivityForResult(Activity.java:3424)
09-27 17:37:56.827:E/AndroidRuntime(5622):在android.app.Activity.startActivityForResult(Activity.java:3385)
09-27 17:37:56.827:E/AndroidRuntime(5622):在android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:840)
09-27 17:37:56.827:E/AndroidRuntime(5622):在android.app.Activity.startActivity(Activity.java:3627)
09-27 17:37:56.827:E/AndroidRuntime(5622):在android.app.Activity.startActivity(Activity.java:3595)
09-27 17:37:56.827:E/AndroidRuntime(5622):在fm.de.geschichden.MainActivity$1.onItemClick(MainActivity.java:47)
09-27 17:37:56.827:E/AndroidRuntime(5622):在android.widget.AdapterView.performItemClick(AdapterView.java:299)
09-27 17:37:56.827:E/AndroidRuntime(5622):在android.widget.AbsListView.performItemClick(AbsListView.java:1113)
09-27 17:37:56.827:E/AndroidRuntime(5622):在android.widget.AbsListView$PerformClick.run(AbsListView.java:2911)
09-27 17:37:56.827:E/AndroidRuntime(5622):在android.widget.AbsListView$3.run(AbsListView.java:3645)
09-27 17:37:56.827:E/AndroidRuntime(5622):在android.os.Handler.handleCallback(Handler.java:733)上
09-27 17:37:56.827:E/AndroidRuntime(5622):在android.os.Handler.dispatchMessage(Handler.java:95)上
09-27 17:37:56.827:E/AndroidRuntime(5622):在android.os.Looper.loop(Looper.java:136)
09-27 17:37:56.827:E/AndroidRuntime(5622):在android.app.ActivityThread.main(ActivityThread.java:5001)上
09-27 17:37:56.827:E/AndroidRuntime(5622):位于java.lang.reflect.Method.Invokenactive(本机方法)
09-27 17:37:56.827:E/AndroidRuntime(5622):在java.lang.reflect.Method.invoke(Method.java:515)
09-27 17:37:56.827:E/AndroidRuntime(5622):在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
09-27 17:37:56.827:E/AndroidRuntime(5622):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
09-27 17:37:56.827:E/AndroidRuntime(5622):在dalvik.system.NativeStart.main(本机方法)
错误显示:

ActivityNotFoundException: Unable to find explicit activity class {fm.de.geschichten/fm.de.geschichten.ListViewShow}; have you declared this activity in your AndroidManifest.xml?

因此,请确保您已经在清单文件中添加了活动
ListViewShow.java
,以及应用程序标记下的其他活动。

您已经拥有了所描述的所有内容,为什么要告诉我们这些并发布所有代码。您可以在第二个活动中从意图附加文件中检索“story5.txt”。您唯一不知道的是t have正在从资产中读取该文件。相反,您尝试像在文件系统中一样读取该文件。我不会问我是否已经知道解决方案。我完全更改了“ListVIewShow”活动。那么,如果我单击列表项,如何才能使文本文件显示?总是出现一个错误,表示不幸的是应用程序已停止。如果崩溃,请使用logcat输出编辑问题:)您从getExtras中删除了Desting,但这对于测试来说是可以的。请再放一次。您从资产代码中读取的内容看起来不错。文件test.txt是否在资产中?此外,您应该在catch块中放置一条log语句,以执行以下操作。并查看LogCat,因为它会告诉您错误和跟踪。发布loggcat。我想你指的是这一行:
//下面这一行只显示了一行简单的文本//((TextView)(findViewById(R.id.textView1))).setText(“您选择了”+intent.getStringExtra(“选择的”)+“!”所以它可以使用它,但它似乎没有任何test.txt文件的上下文,它只显示了一行,这不是我想要的。当然,我想要的test.txt文件中没有任何内容。我添加了LogCat消息。是的,test.txt文件放在资产订单a中。谢谢,第一步已经完成,我不久前重命名了它,所以清单中有一个假名(应用程序只有这两个活动)。现在我可以点击listview项目了。现在它打开了一个新的文本视图,其中只有单词“大文本”
ActivityNotFoundException: Unable to find explicit activity class {fm.de.geschichten/fm.de.geschichten.ListViewShow}; have you declared this activity in your AndroidManifest.xml?