在列表视图中没有显示
我正在开发一个应用程序,我可以选择“发布”,当您按下发布按钮时,您将转到另一个活动,我们有EditText
和Button
,一旦按下Button
该文本应该在ListView
的提要页面中进行并“张贴”。在列表视图中没有显示
现在,当我按Button
一切工作正常,但没有出现在列表视图中。
下面的代码:
帖子:
package com.example.ali.test1;
import android.app.Activity;
import android.content.Intent;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.text.Editable;
import android.view.View;
import android.widget.EditText;
public class Post extends ActionBarActivity {
EditText input;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_post);
// android:id="@+id/input"
input = (EditText) findViewById(R.id.input);
}
public void addToList(View v) {
Editable text = input.getText();
Intent intent = new Intent();
intent.putExtra("result", text);
setResult(Activity.RESULT_OK, intent);
finish();
}
}
应该在哪里可以看到邮件类:
package com.example.ali.test1;
import android.app.Activity;
import android.content.Intent;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import java.util.ArrayList;
public class MainActivity extends ActionBarActivity {
ListView list;
ArrayAdapter<String> adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
list= (ListView) findViewById(R.id.list);
adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, new ArrayList<String>());
list.setAdapter(adapter);
}
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == 1) {
if (resultCode == Activity.RESULT_OK) {
String result = data.getStringExtra("result");
adapter.add(result);
adapter.notifyDataSetChanged();
}
}
}
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
int id2 = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
else if (id2 == R.id.action_cart) {
startActivityForResult(new Intent(MainActivity.this , Post.class), 1);
}
return super.onOptionsItemSelected(item);
}
}
的XML文件:
帖子:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context="com.example.ali.test1.Post">
<EditText
android:id="@+id/input"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Add to list"
android:onClick="addToList"
android:layout_below="@id/input"/>
</RelativeLayout>
主营:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context="com.example.ali.test1.MainActivity">
<ListView
android:id="@+id/list"
android:layout_width="match_parent"
android:layout_height="200dp"
android:layout_weight="1" />
</RelativeLayout>
的问题是,没有什么是列表视图 任何帮助显示?
尝试在添加和设置结果之前检查数据的空值。
if(data != null && data.getStringExtra("result") != null){
String result = data.getStringExtra("result");
adapter.add(result);
adapter.notifyDataSetChanged();
}
好吧这工作,并停止崩溃,但没有在列表视图中显示任何帮助?并感谢你。 –
当你通过“adapter.add(result)”直接添加到他的适配器时,它会自动调用notifyDataSetChanged函数,所以尝试删除notify函数。如果这不起作用,请尝试使用list.add(result),然后调用list.getAdapter()。notifyDataSetChanged()。你应该为你的适配器提供一个函数getView(),我建议你在你的问题中也发布这个函数 – DadoZolic
他使用的默认适配器已经有了getView()方法。 – Fustigador
而不是字符串结果= data.getStringExtra( “结果”)试试这个方法:
Bundle MBuddle = data.getExtras();
String MMessage = MBuddle.getString("result");
请发表您的logcat的错误跟踪。 – Rohit5k2
没有错误是有点难以确定是什么问题。请编辑并发布对应于崩溃的LogCat错误 – diogojme
在哪里可以找到android studio中的logcat错误跟踪?在logcat窗口中有数百万行 –